用户切换浏览器标签的事件

Eog*_*anM 27 javascript cross-browser

我正在寻找一个事件,当用户从页面切换到另一个标签时会触发该事件,而另一个事件会在用户再次切换回标签时触发.

window.onblur和window.onfocus 似乎无法在所有浏览器中正常工作

是否有代理我可以看一下以便合成这个事件?

Dan*_*anO 39

您可以尝试使用提供跨浏览器支持的框架,例如MooTools或jQuery.他们应该能够更可靠地检测浏览器窗口的事件blurfocus事件.

我个人使用jQuery取得了很大的成功:

$(window).blur(function(e) {
    // Do Blur Actions Here
});
$(window).focus(function(e) {
    // Do Focus Actions Here
});
Run Code Online (Sandbox Code Playgroud)

  • _5年后:_谢谢杜德! (2认同)

ron*_*aum 21

您也可以尝试使用VisibilityAPI.

document.addEventListener("visibilitychange", function() {
    if (document.hidden){
        console.log("Browser tab is hidden")
    } else {
        console.log("Browser tab is visible")
    }
});
Run Code Online (Sandbox Code Playgroud)

另请参见Stackoverflow(可能重复)

  • 始终欢迎提供指向潜在解决方案的链接,但请[在链接周围添加上下文](//meta.stackoverflow.com/a/8259),以便您的其他用户了解它是什么以及它为什么存在。**始终引用重要链接中最相关的部分,以防目标站点无法访问或永久脱机。** 考虑到_仅仅只是指向外部站点的链接_可能是[为什么和一些答案是如何被删除的?](//stackoverflow.com/help/deleted-answers)。 (2认同)