2016-12-05 57 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> 
相关问题