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
        }
    }
}

console.log

>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 に答える