8

タブを処理する Google Chrome 拡張機能を実装しています。onCreatedこれには、 、onUpdatedおよびをフェッチすることが含まれonActivatedます。毎回tabId、イベントの処理中に最初に配列に格納された をロジックで使用しonCreatedます。原則として、すべて正常に動作します。

ただし、不具合に気付きました。場合によっては、既存のタブの ID が変更されることがあります。したがって、タブには私の配列にない ID があり、当然エラーが発生します。この問題は、次の使用例で再現できます。

  • URL が異なる 2 つ以上のタブを開く
  • あるタブに読み込む T 別のタブに既に読み込まれている URL

この場合、2 つのことが起こります。まず、onUpdatedイベントの代わりに、 onActivatedT のイベントが発生します。次に、T には新しい ID があり、通常は 2 ずつ増分されます。

これは私には直感的とはほど遠いように思えます。私はそれをバグとさえ呼んでいます。ここで何が起こっているのか誰にもわかりませんか?

どんなヒントでも大歓迎です!

4

1 に答える 1

12

プリレンダリングが原因である可能性があります。chrome.webNavigation.onTabReplacedこれは、 orchrome.tabs.onReplacedイベントをリッスンすることで検出できます。詳細については、webNavigation イベント順序セクションも参照してください。

于 2013-07-19T22:13:26.210 に答える