[英]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.