Google chrome extension 如何检测标签更改URL或在Google Chrome扩展上创建标签?

Google chrome extension 如何检测标签更改URL或在Google Chrome扩展上创建标签?,google-chrome-extension,Google Chrome Extension,我有一个关于编写Google Chrome扩展的问题。我现在的目标是检测是否创建了选项卡或选项卡的URL是否已更改 实际上,我想在Chrome上的任何网页的在线链接中插入dictionary.js,脚本将作为background.html运行。例如,如果打开浏览器并转到主页,它将运行脚本将dictionary.js插入该页面。创建新选项卡或打开新页面时,它也将运行脚本。当人们更改tab的url时,它也会运行脚本。在这种情况下,如何检测选项卡是否更改?好的,这是我的。。。我想是用密码来解释的 ch

我有一个关于编写Google Chrome扩展的问题。我现在的目标是检测是否创建了选项卡或选项卡的URL是否已更改

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

chrome.someFunctionThatDetectTheSituationsAbove(function() {
    insertDictionaryScript();//I'd love to have the script of detection, not the insertDictionaryScript();
}
如果您有任何想法,我将不胜感激。谢谢P


[x] 您所描述的内容称为内容脚本。您不需要为此编写任何代码,只需在清单文件中声明即可。有关内容脚本的详细信息。

您可以通过向事件添加侦听器来检测新选项卡的创建


您可以通过向事件添加侦听器来检测选项卡的url更改。

只需在background.js中添加以下内容:

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

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

还有一个激活的事件:

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

谢谢你的评论。我想你误会我了。因为我使用的是清单文件,但它只在扩展启动时工作一次。好的,例如,我会发出警报(“你好!”)。因此,每当我打开分机时,它就会发出“你好”的警报。但是,当您更改页面URL或打开新选项卡时,它将不会再次运行。那么我如何检测标签URL被更改或新标签被创建的情况呢。。。[x] @xx3004您不需要后台页面,只需在清单中将您的dictionary.js声明为内容脚本,当创建新选项卡、更改url等时,它将自动包括在内。明白了,我不应该将其放在background.html中。非常感谢你![x] @serg如果Chrome允许我将其指定为“用户来源”,它会起作用,但我认为没有办法在清单中声明这一点,是吗?因此,我不得不使用
chrome.tabs.onUpdate
?谢谢你的帮助!我想我应该使用内容脚本声明。但这可能对其他事情有用:再次感谢你。[x] 谢谢你的帮助!非常清楚!我想我现在知道该怎么办了。[x] 当web的任何内容更新时,“更新”会运行多次。@vanduc1102-您可以检查url是否更改,例如
if(changeInfo.url)myFunc()激活的
回调签名不正确-它现在只接受一个对象。参见@vaughan链接断开此事件与问题完全无关