Chrome扩展程序如何检测特定标签中的域已更改

时间:2016-01-05 23:04:56

标签: javascript jquery google-chrome-extension tabs

我正在尝试检测特定标签何时更改域名 - 例如,我将facebook.com留给stackoverflow.com。但我只想在给定的标签中检测到它 - 所以如果我在一个标签中转到facebook.com然后在另一个标签中转到stackoverflow.com则不行。发生此事件时,我需要知道卸载了哪个域。因此,如果在特定标签中我从facebook.com导航到stackoverflow.com,我将需要触发事件和" facebook.com"存储在变量中。

我认为以下内容可行,但是标签ID会发生变化(我认为有时会加载新的标签ID与卸载页面的标签ID),所以它不起作用。有什么想法吗?

在内容脚本中:

ser_cdf.plot(drawstyle='steps')

在后台:

window.onbeforeunload = function () { 

        var host = location.host;

        chrome.runtime.sendMessage({unloadEvent : host}, function(response){

            if(response.isSuccess){
                console.log('unload message sent');
            }
        });
    }

1 个答案:

答案 0 :(得分:1)

不,抱歉。只有在删除/关闭选项卡时才会更改tabid,并且使用内容脚本是一个坏主意。

适合您的方法是使用chrome.tabs.onUpdated,如下所示:

    chrome.tabs.onUpdated.addListener(function(tabid, changeInfo, tab) {
        if (changeInfo.status == 'complete') {
            alert('tabid: ' + tabid + 'URL: ' + changeInfo.url + 'Tab status: ' + changeInfo.status);
        }
    });

这必须包含在后台脚本中。