我正在构建我的第一个chrome扩展程序,并且遇到了一个自犯错误。我在popup.js文件中可以在正确的选项卡上启动内容脚本(我无法从清单文件中注入内容脚本)。这一切都很好。我的问题是当您关闭扩展并重新打开它时。该脚本现在再次启动,现在我插入了两个版本的content.js脚本。这完全有意义。但是,这现在导致重复的动作。我迷路的是确保脚本仅启动一次。我似乎找不到找到检查脚本是否已经注入或不评估加载的popup.js文件是否需要这样做的方法。这是下面的代码。任何帮助将不胜感激。
//launch the content script on the correct tab
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {
file: "jquery-3.4.1.min.js"
}, function(){
chrome.tabs.executeScript(tabs[0].id, {
file: "content.js"
}, function(){})
});
});
这是我尝试实现的以下链接:
(function() {
if (window.hasRun === true)
return true; // Will ultimately be passed back to executeScript
window.hasRun = true;
// rest of code ...
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {
file: "jquery-3.4.1.min.js"
}, function(){
chrome.tabs.executeScript(tabs[0].id, {
file: "content.js"
}, function(){})
}
);
});
// No return value here, so the return value is "undefined" (without quotes).
})()