3

我正在使用 onUpdate 事件侦听器,但在加载完成之前和之后获得不同的 tabId:

chrome.tabs.onCreated.addListener(function(tab){
    var i=ta.length;
    ta[i]=new Array(5);

    chrome.tabs.onUpdated.addListener(function(tid, changeInfo, tabO){
        console.log(tid + " " + changeInfo.status);
        console.log(tab.id + " " + tabO.title); //tab.id is form onCreated event

        if( tid == tab.id && changeInfo.status === "complete" && tabO.title !== "New Tab") {
            console.log(tabO.title+"******"+tabO.url);//then do stuff
        }
    }
}

控制台日志

>200 loading script_new.js:12
>200 stackoverflow.com/questions/ask script_new.js:13
>200 undefined script_new.js:12
>194 stackoverflow.com/questions/ask script_new.js:13
>200 undefined script_new.js:12
>198 stackoverflow.com/questions/ask script_new.js:13
>200 undefined script_new.js:12
>200 stackoverflow.com/questions/ask script_new.js:13
>200 complete script_new.js:12
>194 Ask a Question - Stack Overflow 
4

1 回答 1

2

简短的回答:tabIdChrome 选项卡的 不会改变,尽管如果您关闭一个选项卡并使用 ctrl+shift+t “重新打开”它,它将是一个具有不同 ID 的新选项卡。

正如@DraškoKokić 暗示的那样,每个onUpdated处理程序都会在每次选项卡更新时被调用,而不仅仅是onCreated您在其中注册处理程序的选项卡,因此您会得到一些误导性的console.log输出。

于 2014-03-09T22:29:16.340 回答