Google chrome Chrome webNavigation.onComplete不工作?
我正在尝试编写一个chrome扩展,当用户在youtube页面上观看视频时,它会执行一些代码。据我所知,我的代码是正确的,但它不起作用 eventPage.js:Google chrome Chrome webNavigation.onComplete不工作?,google-chrome,google-chrome-extension,youtube,Google Chrome,Google Chrome Extension,Youtube,我正在尝试编写一个chrome扩展,当用户在youtube页面上观看视频时,它会执行一些代码。据我所知,我的代码是正确的,但它不起作用 eventPage.js: chrome.webNavigation.onCompleted.addListener(function(){ console.log("Test") },{url: [{pathContains: "watch", hostSuffix: "youtube.com"}]}); 还有我的清单文件 { "manifest_v
chrome.webNavigation.onCompleted.addListener(function(){
console.log("Test")
},{url: [{pathContains: "watch", hostSuffix: "youtube.com"}]});
还有我的清单文件
{
"manifest_version": 2,
"name": "youtubeExtension",
"description": "A chrome extension for youtube",
"version": "0.1",
"permissions": ["https://www.youtube.com/", "webNavigation"],
"background": {
"scripts": ["eventPage.js"],
"persistant": false
}
}
似乎onCompleted在youtube上不起作用。除了使用网络导航,您还可以使用 将此添加到background.js
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
if (tab.url.indexOf("youtube.com") != -1) {
alert("Youtube load complete");
injectScripts();
}
}
});
并将以下内容添加到mainfest.json
"permissions": ["https://www.youtube.com/", "webNavigation","tabs"]
这同样有效只有在文档加载完成后才会触发。当您导航到YouTube上的另一个页面时,新页面不会以传统方式真正“加载”,而是动态更新页面,并使用history.pushState
替换URL。要检测此类“导航”,请在onCompleted
事件之外使用该事件
另一种检测YouTube页面上视频的方法是使用YouTube上的内容脚本和一些特定于YouTube的事件,请参见。欢迎使用SO。您应该知道,堆栈片段实际上只适用于自包含的html/css/js。扩展是javascript,但它不能真正在代码段中运行,因此以这种方式发布它是没有意义的。如果你打开youtube作为背景选项卡,它也会启动。TS表示当前可见的选项卡。具体问题是什么?从一个视频导航到另一个视频时是否未触发事件?