2015-11-26 75 views
2

一個簡單的問題,我無法找到答案。當用戶走開並鎖定他們的電腦時,我想停止定期的AJAX呼叫。我不需要它是每個操作系統兼容或每個瀏覽器(Chrome和IE會很好)。如何檢測桌面被鎖定在javascript

setInterval在鎖定時似乎並沒有停止,AJAX也沒有被阻止。 visibilitychange事件似乎認爲該選項卡是可見的,除非切換到另一個選項卡。

我已經聲明的JavaScript,但我只關心它可以在瀏覽器內完成,而無需詢問用戶。

邊緣似乎表明它被鎖定時隱藏,所以我可以用該瀏覽器。

感謝

+2

在你的javascript中,不可能檢測OS UI是否被鎖定。你需要編寫一個瀏覽器插件來執行此操作。 – bhspencer

+0

老鼠,我只是想編輯我的文章,說我不想在擴展中使用chrome.idle,但你打敗了我!無論如何感謝 – JonoT

+0

@bhspencer我建議張貼,作爲答案 – djechlin

回答

0

在JavaScript中,不可能檢測,如果OS UI已經鎖定得到保護狀態的OS或屏幕。出於安全原因,瀏覽器沙盒阻止了對操作系統資源的這種訪問。你需要編寫一個瀏覽器插件來執行此操作。

+0

雖然這個答案在某種意義上沒有幫助,但它讓我解決了這個問題,我認爲它的確讓我考慮了其他選擇,它確實證實了我自己的發現。感謝您的時間。 – JonoT

2

可以使用Idle.js庫,如果用戶正在從瀏覽器窗口客場檢測或處於非活動狀態(他的輸入設備是無效)。

無論是哪種情況,有沒有可靠的方法來從瀏覽器

+0

我剛剛嘗試過這個演示,它報告'離開'時被鎖定或當選項卡被解除連接但在另一個監視器上可見時,這與我使用setInterval,visibilitychange事件和焦點所觀察到的行爲足夠接近。好主意,但。 – JonoT

相關問題