何が原因window.addEventListner('popstate', foo, false) window.attachEvent('onpopstate', foo)
でwindow.onpopstate=foo
、関数 foo がトリガーされないのか疑問に思っていました。これに似たコードがあり、本番環境では起動しませんが、開発環境では起動します。JS を介して popstate イベントを無効にしたり、何らかの衝突や競合状態を発生させたりすることは可能ですか?
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では、すべて正常に動作します。