我想检查浏览器是否支持hashchange
事件,如果不支持,请使用setInterval
伪造它。
我试过了
if ('onhashchange' in window) {
window.onhashchange = hashChange;
} else {
/* setInterval graceful degradation */
}
但问题是,在IE7的IE7 Compat模式中,'onhashchange' in window
返回true
,因为window.onhashchange
是null
(jsfiddle)
为什么会这样?如果我使用'onclick2' in window
,则返回false
!
我已阅读Detecting support for a given JavaScript event?,但如果可能的话,我更愿意使用更简单的东西。
答案 0 :(得分:1)
似乎'onhashchange' in window
是true
因为我在IE7模式下使用IE8而不是真正的IE7
但我刚刚使用IETester和'onhashchange' in window
尝试了false
。
现在,我想知道为什么IE 8有IE7模式,如果它不能很好地模拟IE7
答案 1 :(得分:-2)
我不确定为什么IE会给你这个,但为什么不测试真正的
if(("onhashchange" in window) === true){
/* Supported */
}else{
/* Backup */
}