8

我正在实现一个处理标签的谷歌浏览器扩展。这包括我获取onCreated,onUpdatedonActivated. 每次,我在我的逻辑中使用 ,在处理事件tabId期间最初存储在一个数组中。onCreated原则上,一切正常。

然而,我注意到一个小故障。有时,已经存在的选项卡的 ID 会更改。因此,选项卡的 ID 不在我的数组中,这自然会导致错误。我可以在以下用例中重现此问题:

  • 打开 2 个或更多具有不同 URL 的标签
  • 在一个选项卡中加载 T 已在另一个选项卡中加载的 URL

在这种情况下,会发生两件事:首先,触发 TonUpdated的事件而不是事件onActivated。其次,T 现在有了一个新的 ID,通常增加 2。

在我看来,这与直觉相去甚远。我什至会称其为错误。有人知道这里发生了什么吗?

任何提示都非常感谢!

4

1 回答 1

12

这很可能是由预渲染引起的。这可以通过监听chrome.webNavigation.onTabReplacedorchrome.tabs.onReplaced事件来检测。另请参阅webNavigation 事件顺序部分了解更多详细信息。

于 2013-07-19T22:13:26.210 回答