2017-10-16 103 views
0

如何才能在瀏覽器選項卡/窗口處於活動狀態時僅執行一次該功能?當窗口處於活動狀態時執行腳本

$(function(){ 

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

return false; 
}); 

如果我使用:執行

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

的功能,但只有當我離開的標籤,再回來。

任何想法?

非常感謝

+0

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

回答

0

你是什麼意思是'主動'?

如果您需要在加載後只調用一次該函數,則可以使用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

0

如果使用load事件,它將在頁面加載時觸發。

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

嗨kemotoe,如果我打開一個新的窗口/選項卡,即使選項卡處於活動狀態,該功能也會執行......我只希望在選項卡處於活動狀態時執行該選項。 – Playinteractive

相關問題