【问题标题】:How to detect browser support for pageShow and pageHide?如何检测浏览器对 pageShow 和 pageHide 的支持?
【发布时间】:2011-10-17 21:09:12
【问题描述】:

我们如何为 pageShow and pageHide 处理程序进行 JavaScript 对象检测?

if( /* pagehide is supported */ ){
   window.addEventListener('pagehide', exitFunction, false);
}
else{
    window.addEventListener('unload', exitFunction, false);
}

【问题讨论】:

    标签: javascript dom browser-detection browser-support


    【解决方案1】:
    if ('onpagehide' in window) {
       window.addEventListener('pagehide', exitFunction, false);
    } else {
       window.addEventListener('unload', exitFunction, false);
    }
    

    【讨论】:

    • 我刚刚检查过了。答案有效,但有一个缺陷。如果有人在此检查发生之前定义了 onpagehide,则 window.onpagehide 将为真。我不确定是否有办法避免这种情况。 :(
    • @epascarello 这几乎可以用任何东西。你可以用document.getElementById = "nyan cat";重新定义getElementById
    • 大多数浏览器不会让你设置 getElementById。那个是受保护的。 :)
    • 这个答案在 chrome 中对我有用,但对 firefox 无效,虽然两者都支持 pageshow(我尝试使用 pageshow),但 firefox 总是无法通过条件检查。
    • @Shaz 检查是否支持事件的推荐方法是使用if ('onpagehide' in window) {。 (请参阅perfectionkills.com/… 损坏的浏览器有极少数例外情况。扩展 @nilfalse 的评论。)
    猜你喜欢
    • 2013-10-26
    • 2010-10-10
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 2015-10-28
    相关资源
    最近更新 更多