4

ブラウザがhashchangeイベントをサポートしているかどうかを確認し、サポートしていない場合はsetInterval.

私が試してみました

if ('onhashchange' in window) {
    window.onhashchange = hashChange;
} else {
    /* setInterval graceful degradation */
}

しかし、問題は、IE7 Compat モードの IE8 では、is ( jsfiddle )が'onhashchange' in window返さtrueれることです。window.onhashchangenull

なぜそれが起こるのですか?を使えば'onclick2' in window返ってきますfalse

特定の JavaScript イベントの検出サポートを読みましたか? ですが、できればもっとシンプルなものを使いたいです。

4

2 に答える 2

1

本物の IE7 ではなく IE7 モードで IE8 を使用していたこと'onhashchange' in windowが原因のようですtrue

しかし、IETesterで試してみたところ'onhashchange' in windowfalse.

さて、IE7をうまくエミュレートできないのに、なぜIE8にIE7モードがあるのだろうか

于 2013-08-27T21:45:02.173 に答える
-2

なぜIEがそれを提供しているのかわかりませんが、trueをテストしないのはなぜですか

if(("onhashchange" in window) === true){
  /* Supported */
}else{
  /* Backup */
}
于 2013-08-27T21:11:58.553 に答える