当窗口处于活动状态时执行脚本

问题描述:

如何才能在浏览器选项卡/窗口处于活动状态时仅执行一次该功能?当窗口处于活动状态时执行脚本

$(function(){ 

noty({text:'Here is my text',type:'error'}); 

return false; 
}); 

如果我使用:执行

$(window).one('focus', function(){ 

的功能,但只有当我离开的标签,再回来。

任何想法?

非常感谢

+0

也许,它可以帮助https://*.com/questions/1760250/how-to-tell-if-browser-tab-is-active – Sergey

你是什么意思是'主动'?

如果您需要在加载后只调用一次该函数,则可以使用load事件或带有jQuery的ready

如果每次选项卡处于活动状态,则当用户位于选项卡上,并且鼠标将焦点放在文档上时,可以使用focus事件。

let activated = false; 
window.addEventListener('focus', function() { 
    if(!activated) { 
     console.log('test'); 
     activated = true; 
    } 
}) 
+0

嗨sheplu,我需要的是显示功能如果窗口处于活动状态。如果你打开一个新的窗口/标签,该功能不会出现,直到你去标签。 – Playinteractive

+0

确定,因此只有当用户进入您的页面时才需要触发该功能。那么你可以使用焦点,如果情况下,检查是否你第一次使用网站 – sheplu

+0

我sheplu,如果我刷新窗口不起作用! “加载”和“焦点”可能有效吗? – Playinteractive

如果使用load事件,它将在页面加载时触发。

$(document).ready(() => { 
    $(window).on('load',() => { 
    noty({ text: 'Here is my text', type: 'error' }); 
    }); 
}); 
+0

嗨kemotoe,如果我打开一个新的窗口/选项卡,即使选项卡处于活动状态,该功能也会执行......我只希望在选项卡处于活动状态时执行该选项。 – Playinteractive