我对撰写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]
答案 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)
答案 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);
})
});