我正在制作一个扩展程序来检测在后台运行的YouTube视频并将其记录下来。
我无法从高级tabs
API获取的是标签的导航事件。
例如,当我去 youtube.com 时,我可以从"准备好"事件。
但是,当我点击视频链接将其加载到同一个标签中时,我就不会收到任何活动。此外,当新视频在最后一个视频结束后自动加载(自动播放)时,我也无法获得任何活动。
如何进行这些更改?
我目前的黑客只是遍历所有打开的标签页并查看" youtube.com/watch?v ="子串每隔10-20秒。
修改
代码:
var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var listen = 1;
var button = buttons.ActionButton({
id: "activate",
label: "Start Listening",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: toggleListen
});
//check tabs
var { setInterval } = require("sdk/timers");
setInterval(function() {
suburl = "www.youtube.com/watch"
for (let tab of tabs){
if(tab.url.indexOf(suburl)>-1){
console.log("tab: ",tab.url);
}
}
console.log("\n--------------------------------\n\n");
}, 15000)
答案 0 :(得分:0)
你应该尝试这样的事情:
var tabs = require("sdk/tabs");
const YOUTUBE_URI = /^https:\/\/www.youtube.com/;
tabs.on("load", function(tab) {
if (YOUTUBE_URI.test(tab.url)) {
console.log('tabWatcher: ' + t.url + ' is shown for the first time');
}
});
tabs.on("activate", function(tab) {
if (tab.readyState=='complete') {
if (YOUTUBE_URI.test(tab.url)) {
console.log('tabWatcher: ' + t.url + ' is shown again');
}
}
});