Internet Explorer 10 и popstate не связаны

Мне было интересно, что может заставить window.addEventListner('popstate', foo, false) window.attachEvent('onpopstate', foo) и window.onpopstate=foo не запускать функцию foo. У нас есть код, подобный этому, и в производстве он не срабатывает, а развивается. Можно ли отключить событие popstate через JS или вызвать какое-то состояние столкновения или гонки, чтобы это произошло?

EDIT (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 все работает нормально.

Ответ 1

Вы уверены, что не вызываете его, используя history.pushState() или history.replaceState()?

popstate запускается только тогда, когда вы делаете что-то с браузером, например, с помощью кнопки "Назад" или вызываете с помощью history.back().

кроме этого, он будет работать с хром, потому что он будет снимать всплывающие окна при загрузке страницы, поэтому убедитесь, что событие действительно загружается. Проверка этого должна быть включена в:

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

Я считаю, что popstate включен в document.readyState, поэтому сделайте снимок.