2016-12-05 55 views
0

有什麼辦法可以檢測到以前的標籤在Javascript中?我正在製作一款Chrome擴展程序,在該擴展程序中,每當我更改應檢測到的選項卡每當我去或打開新標籤,它會檢測到,但當我回到前一個標籤時,它不會檢測到。如何檢測Chrome擴展中的以前或非活動選項卡?

+0

您能否添加更多信息?你用什麼來檢測標籤變化? – Artholl

回答

0

這不完全符合您的要求,但我認爲它確實能滿足您的大部分需求。

它檢測窗口何時被聚焦/模糊,所以當客戶端點擊另一個應用程序,其他選項卡或點擊Windows桌面時,...這是模糊的。在您的網站中點擊一次即被檢測爲焦點。

Losely在此基礎上How can I detect when the mouse leaves the window?

滿意嗎?可能會添加一個addEvent(文檔,「mouseover」,...)和addEvent(文檔,「mouseout」,...),該組合可能會給你你需要的東西。

<html> 
<head> 
<script type="text/javascript"> 
    // just a function to display a message 
    function displayMessage(msg) { 
    document.getElementById('message').innerHTML = msg; 
    } 
    function addEvent(obj, evt, fn) { 
    if (obj.addEventListener) { 
     obj.addEventListener(evt, fn, false); 
    } 
    else if (obj.attachEvent) { 
     obj.attachEvent("on" + evt, fn); 
    } 
    } 
    addEvent(window,"load",function(e) { 
    // activate window 
    addEvent(window, "focus", function(e) { 
     e = e ? e : window.event; 
     var from = e.relatedTarget || e.toElement; 
     if (!from || from.nodeName == "HTML") { 
     // stop your drag event here 
     displayMessage('focus'); 
     } 
    }); 
    // blur window 
    addEvent(window, "blur", function(e) { 
     e = e ? e : window.event; 
     var from = e.relatedTarget || e.toElement; 
     if (!from || from.nodeName == "HTML") { 
     // stop your drag event here 
     displayMessage('blur'); 
     } 
    }); 
    }); 
</script> 
</head> 
<body> 
    <div id="message"></div> 
</body> 
</html> 
相關問題