如何在Google Chrome扩展程序上检测标签更改网址或标签?

时间:2011-04-01 00:01:20

标签: google-chrome-extension

我对撰写Google Chrome扩展程序有疑问。我现在的目标是检测是否创建了选项卡或选项卡的URL已更改。

实际上,我想在线链接中插入字典.js到Chrome上的任何网页,该脚本将以background.html身份运行。例如,如果您打开浏览器并转到主页,它将运行脚本以将dictionary.js插入该页面。创建新选项卡或打开新页面时,它也会运行脚本。当人们更改tab的url时,它也会运行脚本。如何在这种情况下检测标签是否发生变化?好的,这是我的...代码,我想,解释一下。

chrome.someFunctionThatDetectTheSituationsAbove(function() {
    insertDictionaryScript();//I'd love to have the script of detection, not the insertDictionaryScript();
}

我很感激任何想法。谢谢。 :P

[X]

5 个答案:

答案 0 :(得分:54)

只需在你的background.js上添加:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    insertDictionaryScript();
});

chrome.tabs.onCreated.addListener(function(tab) {         
   insertDictionaryScript();
});

答案 1 :(得分:12)

还有 onActivated 事件:

chrome.tabs.onActivated.addListener(function(tabId, changeInfo, tab) {
   insertDictionaryScript();
});

答案 2 :(得分:8)

您所描述的内容称为内容脚本。您不需要任何编码,只需在清单文件中进行声明即可。有关内容脚本here的更多信息。

答案 3 :(得分:3)

您可以通过向onCreated事件添加侦听器来检测新的标签创建。

您可以通过向onUpdated事件添加监听器来检测选项卡的网址更改。

答案 4 :(得分:0)

要检测 google chrome 扩展程序中的标签更改:

在您的后台 script.js 中添加以下代码:

chrome.tabs.onActivated.addListener(function() { 
    chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
        var currentURL = tabs[0].url;
        console.log(currentURL); 
    })
});