互联网浏览器10和popstate没有约束力(Internet Explorer 10 and po

2019-08-16 18:21发布

我想知道,是什么引发window.addEventListner('popstate', foo, false) window.attachEvent('onpopstate', foo)window.onpopstate=foo不触发函数foo。 我们有类似这样的代码,并在生产中不火,但在发展它。 是否有可能通过JS禁用popstate事件或导致发生某种冲突或竞争条件这个的?

编辑( Gustin的 ):+示例代码

PopStateEvent.js(完整列表,使用jQuery 1.9.1):

$(window).bind('popstate', function () { alert("Pop state event received!"); });

如果我测试用IE 10(10.0.9200.16484)这个很简单的例子,我从来没有收到一个弹出状态事件(即从未出现的警告框)。 甚至,如果我导航离开,并通过IE浏览器的后退按钮回来。 即此Q / A并没有解决我的情况。

有了Chrome 24,一切工作正常。

Answer 1:

你确定你是不是使用history.pushState()或history.replaceState()调用呢?

当你做一些与浏览器,像后退按钮使用history.back popstate时才会触发,或称为()。

除此之外,它会与Chrome浏览器,因为它会拍摄时,页面加载一个popstate,所以检查,以确保实际加载的事件。 检查本应包含在:

if (document.readyState == "complete") {
    initApplication();
}

我相信popstate包括在document.readyState,所以给它一个镜头。



文章来源: Internet Explorer 10 and popstate not binding