繁体   English   中英

奇怪的chrome扩展javascript问题

[英]strange chrome extension javascript problem

在我的扩展程序中,当当前选项卡URL在目标URL列表中时,我发送一些注入代码。 这是代码

chrome.tabs.onUpdated.addListener(function(tabId, info) {
if(info.status == "complete") {
var tabUrl = "";
var run = false;
chrome.tabs.get(tabId, function(tab) {
    tabUrl = tab.url;
});
var storedList = localStorage["GAR_ExcList"];
if(!storedList) storedList = "";
var storedListArray = storedList.split("\n");
for(var i = 0; i < storedListArray.length; i++) {
    var ind = tabUrl.indexOf(storedListArray[i]);
    alert("for " + i + " index is " + ind);
    if(ind != -1) {
    alert("Running");
    run = true;
    break;
    }
}

if(run) {
    chrome.tabs.executeScript(tabId, { file: "js/jquery-1.6.1.min.js" }, function() {
    chrome.tabs.executeScript(tabId, { file: "js/inject.js"});
    });
}
else {
    alert("excluding");
}
}});

即使这段代码非常完美。 出于某种原因,当我在for循环中注释掉警报时,我得到run = false并且收到了最后一个警报,我不应该这样做。

以前有没有人看过这样的东西? 很感谢任何形式的帮助。

最好,

代替:

chrome.tabs.onUpdated.addListener(function(tabId, info) {
    ...
    var tabUrl = "";
    chrome.tabs.get(tabId, function(tab) {
        tabUrl = tab.url;
    });

尝试:

chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {
    ...
    var tabUrl = tab.url;

chrome.tabs.get()是异步的,因此,如果使用此方法,则需要将其余代码放在其回调中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM