Content.js脚本执行两次

时间:2019-08-30 14:20:56

标签: javascript google-chrome-extension

我正在构建我的第一个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).
    })()

收到错误:enter image description here

0 个答案:

没有答案