tabId何时会发生变化

时间:2014-06-02 13:23:43

标签: google-chrome google-chrome-extension

我正在使用Chrome扩展程序捕获所有网络数据。 我刚刚发现地址栏的更改可能导致tabId更改。任何人都对tabId何时发生变化有充分的了解?

1 个答案:

答案 0 :(得分:4)

绝不是权威的答案:

它与预渲染有关,而这个特定情况可能与即时搜索有关。 当您在地址栏中输入内容时,Chrome显然会预取并预渲染某些页面以便更快地导航。 即使您没有通过地址栏触发此操作,Chrome仍然可以出于性能原因进行标签交换。

考虑description of chrome.tabs.onReplaced

  

由于预渲染或即时更换标签而被另一个标签替换。

chrome.webNavigation API文档中的this remark

  

并非所有导航标签都与Chrome用户界面中的实际标签相对应,例如,正在预呈现的标签。此类标签无法通过标签API访问,您也无法通过webNavigation.getFramewebNavigation.getAllFrames请求有关这些标签的信息。一旦交换了这样的选项卡,就会触发onTabReplaced事件,并且可以通过这些API访问它们。


总结:

出于性能原因,Chrome可以生成一个单独的隐形标签,并将现有标签与此预渲染标签交换。

如果发生这种情况,系统会调度chrome.tabs.onReplaced事件,提供新旧tabId

相关问题