我的网站上有一个计数器,我希望在我的网站不集中时暂停。如果我使用模糊(有人离开焦点)并且有人单击在新选项卡中打开的链接然后关闭选项卡,焦点不会回到上一页?为什么它不起作用?有更好的方法吗?
$(document).blur(function(){
pause=true;
});
$(document).focus(function(){
//alert("test");
pause=false;
countdown(tmp,msg);
});
我的网站上有一个计数器,我希望在我的网站不集中时暂停。如果我使用模糊(有人离开焦点)并且有人单击在新选项卡中打开的链接然后关闭选项卡,焦点不会回到上一页?为什么它不起作用?有更好的方法吗?
$(document).blur(function(){
pause=true;
});
$(document).focus(function(){
//alert("test");
pause=false;
countdown(tmp,msg);
});
我认为它不依赖于document
,而是window
$(window).focus(function(){...});
$(window).blur(function(){...});
我经常遇到的是原生 JS 版本window.onfocus
和window.onblur
. 我想这些也在 jQuery 中使用/抽象。
可以通过“点击”和外部点击使用以下代码进行管理
$(document).click(function() {
//hide
});
$(document).keyup(function(e) {
//manage tab event
if (e.target.id == "idName") {
//show
} else {
//hide
}
});
$(#idName).bind('click', function(e) {
//show
e.stopPropagation();
});
本质上,除非有人单击或进入页面,否则您不会获得焦点,这就是焦点的工作原理。下面的工作代码: -
$(function() {
$(window).focus(function() {
alert("in");
});
$(window).blur(function() {
alert("out");
});
});
您可以添加窗口鼠标输入/输出事件,但我不建议这样做,因为不支持触摸设备并且使用多个屏幕的人会遇到问题。
您的问题更多是软件问题,而不是 JS 问题。在这种情况下,您将受到浏览器的支配,尽管您返回到您想要的选项卡,但您仍处于模糊状态,直到您单击窗口本身。