2011-10-20 32 views
1

我的JavaScript使用計時器來刷新頁面的CSS。我喜歡在Safari處於後臺時運行它,並且正在對代碼編輯器進行更改,但當它不在活動瀏覽器選項卡中時,我不希望它運行。檢測標籤是否有效? (與焦點不同)

window.blurwindow.focus被觸發時,另一個標籤是焦點,但是當標籤被激活和Safari在後臺他們也被觸發,所以他們不幫我在這裏。

如何檢測我的JavaScript運行的標籤當前是否處於活動狀態?

回答

1

W3C有跟蹤這個確切的情況工作草案:the page visibility API。它看起來像Chrome是唯一支持它的瀏覽器,目前有an experimental API。您可以在Web檢查控制檯這個小功能,嘗試一下:

function tattle() { 
    console.log(document.webkitVisibilityState); 
} 

document.addEventListener("webkitvisibilitychange", tattle, false); 

玩弄之後,我覺得這正是我需要的。基本上document.webkitHidden只有在文檔處於其窗口的活動選項卡時纔是false,而不管其他窗口或應用程序是否處於活動狀態。

+1

從閱讀引用的鉻頁面,我想我發現了一個錯誤。它聲明'document.webkitHidden'如果頁面處於被認爲對用戶隱藏的狀態,則返回true,否則返回false。 。在這個答案中說它是真的,如果文檔是窗口中的活動標籤,實際上它是錯誤的。 –

+0

感謝您的支持,您說得對 – elstgav

0

嘗試類似的onmouseover ..