Я внедряю следующий код в веб-страницу с помощью сценария / расширения greasemonkey, чтобы перехватить команду history.pushState
, поэтому я могу выполнять некоторую обработку всякий раз, когда она запускается, и, тем не менее, позволяю команде pushState
продолжать работу впоследствии.1003 *
(function(history){
var pushState = history.pushState;
history.pushState = function(state) {
if (typeof history.onpushstate == "function") {
history.onpushstate({state: state});
}
alert('pushstate called')
return pushState.apply(history, arguments);
}
})(window.history);
код отлично работает в FF4 и Chrome, но в Opera 11 я получаю следующую ошибку, если на странице вызывается команда history.replaceState
:
Неопределенное исключение:Ошибка типа: 'window.history.replaceState' не является функцией
Кто-нибудь знает, как я могу исправить приведенный выше код для работы с Opera, а также с Chrome и Firefox?