Javascript : onHashchange Test

标签 javascript cross-browser hashchange

我正在尝试检查浏览器是否支持 onHashChange 或者如果不支持则不隐藏一些代码,以这种方式:

if(window.onhashchange){
    ...code...
} else {
   ...other code...
}

我也试过这个:

if(typeof window.onhashchange === "function"){
    alert("Supports");  
} else {
    alert("Doesn't Supports");  
}

Quirksmode 所述 这应该有效,但是如果我在 Safari 中的 true state 中执行 alert 比提醒我但 Safari 不支持 onHashChange :S

它有什么问题?如果我走的路不对,我应该如何检查?

最佳答案

您可以使用 in 运算符检测此事件:

if ("onhashchange" in window) {
  //...
}

另见:

关于Javascript : onHashchange Test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4030390/

相关文章:

javascript - 在 jQuery 中如何等待变量的特定值

html - 如何让这个简单的登陆页面 flex box 在所有相关浏览器中工作?

testing - 移动跨浏览器网络测试

javascript - 当用户使用 JQuery 访问哈希链接 (#something) 时如何运行 JavaScript 函数?

javascript - 防止 'hashchange' 事件的默认行为

javascript - 从 webpack 的 ExtractTextPlugin 和 style-loader 中缩小 css

javascript - moment.js 不接受 "31\\Oct\\2016"作为日期

internet-explorer - 我们如何为 IE 和 Edge 设置 Cypress?

javascript - 如何知道 url 哈希何时被手动(写入)更改?

javascript - 尝试在 javascript 中捕获未定义的检查