//In background.js
chrome.tabs.onUpdated.addListener(function(tabid, info, tab) {
console.log(info);
});
我尝试对其进行设置,以便每次加载YouTube视频页面时,onUpdate都会运行一次。我想在youtube视频加载后等待加载。当我直接从网址加载时,我得到了我的期望,但是当我导航到建议的视频时,有2个加载/完成周期。一个用于当前视频,一个用于下一个视频。
这是直接网址YouTube视频的输出。
如果我在观看其他YouTube视频时导航到YouTube视频,就会发生这种情况。
在我的清单中,我有一个简单的background.js脚本,webNaviagtion和Tabs的权限。
我不知道它为什么跑了两次。
答案 0 :(得分:2)
tabs.onUpdated
/ frame
都会调用 iframe
,Youtube观看页面会加载一个。
webNavigation API
向事件监听器提供frameId
,主页面为frameId == 0
。
请注意,当用户从一个视频转到另一个视频或从主Youtube页面转到视频页面时,Youtube不会重新加载页面,因此要检测这些更改,您可以使用chrome.webNavigation.onHistoryStateUpdated
事件侦听器或内容脚本这将听取网站使用的DOM事件,即"spfdone"。