亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何判斷Browser/tab是否處于活動狀態

如何判斷Browser/tab是否處于活動狀態

如何判斷Browser/tab是否處于活動狀態我有一個函數,它每秒鐘調用一次,只有在當前頁面位于前臺時才能運行,也就是說,用戶沒有最小化瀏覽器或切換到另一個選項卡。如果用戶不看它,并且可能是CPU密集型的,那么它就沒有用,所以我不想在后臺浪費周期。有人知道如何用JavaScript告訴這個嗎?注意:我使用jQuery,所以如果您的答案使用jQuery,那很好:)。
查看完整描述

3 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

你會用focusblur窗口事件:

var interval_id;$(window).focus(function() {
    if (!interval_id)
        interval_id = setInterval(hard_work, 1000);});$(window).blur(function() {
    clearInterval(interval_id);
    interval_id = 0;});

要回答評論的“Double Fire”問題,并保持jQuery的易用性:

$(window).on("blur focus", function(e) {
    var prevType = $(this).data("prevType");

    if (prevType != e.type) {   //  reduce double fire issues
        switch (e.type) {
            case "blur":
                // do work
                break;
            case "focus":
                // do work
                break;
        }
    }

    $(this).data("prevType", e.type);})

點擊查看顯示它工作的示例代碼(JSFiddle)


查看完整回答
反對 回復 2019-06-20
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

我會嘗試在window.onfocuswindow.onblur事件。

以下代碼片段已經在Firefox、Safari和Chrome上進行了測試,打開控制臺并在選項卡之間來回移動:

var isTabActive;window.onfocus = function () { 
  isTabActive = true; }; window.onblur = function () { 
  isTabActive = false; }; // testsetInterval(function () { 
  console.log(window.isTabActive ? 'active' : 'inactive'); }, 1000);

試試看這里.


查看完整回答
反對 回復 2019-06-20
  • 3 回答
  • 0 關注
  • 1003 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號