【问题标题】:Google Chrome tab ID changes in tab's lifetime谷歌浏览器标签 ID 在标签的生命周期内发生变化
【发布时间】:2013-07-19 08:08:44
【问题描述】:

我正在实现一个处理标签的 Google Chrome 扩展程序。这包括我获取onCreatedonUpdatedonActivated。每次,我在我的逻辑中使用tabId,在处理onCreated 事件期间最初存储在一个数组中。原则上,一切正常。

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

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

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

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

非常感谢任何提示!

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension


    【解决方案1】:

    这可能是由prerendering 引起的。这可以通过监听chrome.webNavigation.onTabReplacedchrome.tabs.onReplaced 事件来检测。另请参阅webNavigation event order 部分了解更多详情。

    【讨论】:

    • 哇,真快!你是对的,这是预渲染。如果我用google-chrome --prerender-from-omnibox=disabled 启动Chrome,一切正常。并且chrome.webNavigation.onTabReplaced 事件也会被触发。我希望我可以对其进行足够的调整以使其满足我的需求。无论如何,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2018-10-05
    • 2014-02-15
    相关资源
    最近更新 更多