gpt4 book ai didi

javascript - 重写 history.pushState 导致 opera 11 出错

转载 作者:搜寻专家 更新时间:2023-10-31 23:13:40 24 4
gpt4 key购买 nike

我正在通过 greasemonkey 脚本/opera 扩展将以下代码注入(inject)网页以捕获 history.pushState 命令,因此我可以在它被触发时进行一些处理并仍然允许 pushState 命令以在之后继续。

(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 命令,我会收到以下错误:

Uncaught exception: TypeError: 'window.history.replaceState' is not a function

有谁知道如何修复上述代码以在 Opera、Chrome 和 Firefox 上运行?

最佳答案

在 Opera 11.00, Revision 1156 中,支持的 history API 是这些

>>> history.
back, current, forward, go, length, navigationMode

完整 HTML5 history API Opera 11.00 尚未涵盖。一般来说,如果您想发现、探索支持的内容,您可以轻松使用 dragonfly 的控制台模式。 ,Web 开发人员工具。

关于javascript - 重写 history.pushState 导致 opera 11 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com