我正在我的 eventPage.js 中使用下一个代码(由谷歌替换的backgroundPage),并且我面临着一些奇怪的不一致。这是场景:
第一台机器:
打开新标签->
onActivated
onUpdated
onUpdated
onUpdated
Run Code Online (Sandbox Code Playgroud)
输入网址->
onUpdated
onUpdated
Run Code Online (Sandbox Code Playgroud)
输入另一个网址 ->
onUpdated
onUpdated
Run Code Online (Sandbox Code Playgroud)
第二台机器:
打开新标签->
onActivated
Run Code Online (Sandbox Code Playgroud)
输入网址
onReplaced
onActivated
Run Code Online (Sandbox Code Playgroud)
输入另一个网址
onReplaced
onActivated
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab)
{
console.log("onUpdated");
});
chrome.tabs.onActivated.addListener(function(tabId, changeInfo, tab)
{
console.log("onActivated");
});
chrome.tabs.onReplaced.addListener(function(tabId, changeInfo, tab)
{
console.log("onReplaced");
});
Run Code Online (Sandbox Code Playgroud)
经过大量调试后,我发现造成这种差异的原因是 Google Chrome 设置中的“预测网络操作以提高页面加载性能”选项。
在第一台机器中,未选择上述选项,并且按预期工作。
这是第二台机器的预期行为吗?
从文档中我可以以某种方式理解 onReplaced 状态:
当一个选项卡由于预渲染或即时而被另一个选项卡替换时触发。
尽管记录非常少,并且无法知道该选项在某种程度上与 onUpdated onReplaced 状态相关,但我真的不明白第二台机器中的 onActivated 状态以及为什么第一台机器和第二台机器之间存在差异。
我在网上找不到有关此行为的任何文档。在 stackoverflow 上,我几乎找不到一个提到 onReplaced 侦听器的问题,但没有任何我可以使用的信息。
谢谢