我相信這與chrome擴展的異步性質有關。chrome.tabs.executeScript只處理它之前的警報
我的這一段代碼:
alert(tab.title);
chrome.tabs.executeScript(tab.id, {code:"document.title = 'test'"});
工作正常,但只要我刪除了警告,它停止工作。有什麼我可以做的,以消除警報,但仍然有js注入?
編輯:更多的代碼
凸片是標籤對象的全局陣列。
chrome.tabs.onSelectionChanged.addListener(function (tabId) {
for (var i = 0; i < tabs.length; i++) {
if (tabs[i].id == tabId) {
var tab = tabs[i];
while (i < tabs.length) {//length-1
tabs[i] = tabs[i+1];
i++;
}
tabs.pop();
alert(tab.title);//WHY IS THIS NEEDED
chrome.tabs.executeScript(tab.id, {code:"document.title = document.title.substring(1)"});
return;
}
}
});
我很困惑。更改它可解決以下問題:
chrome.tabs.executeScript(tab.id, {code:"setTimeout('document.title = document.title.substring(1)',100)"});
但是,只要將延遲更改爲50,腳本就不會再次執行。我寧願不必這樣做。有誰知道發生了什麼事?
這聽起來不對。請發佈更多代碼。 –
用'break'替換'return'。你如何建立'標籤'數組? – serg
替換。標籤基本上由「chrome.tabs.getAllInWindow」構建。代碼再一次沒有警報。奇怪! – Shazam