gpt4 book ai didi

javascript - 在 Firefox 中获取选项卡导航事件

转载 作者:行者123 更新时间:2023-11-28 06:33:39 24 4
gpt4 key购买 nike

我正在开发一个扩展程序来检测在后台运行的 YouTube 视频并记录它们。

我无法从高级 tabs API 获取选项卡的导航事件。

例如,当我访问 youtube.com 时,我可以从“ready”事件中获取该事件。

但是当我单击视频链接将其加载到同一选项卡中时,我没有收到任何事件。此外,当新视频在最后一个视频结束后自动加载(自动播放)时,我没有收到任何事件。

如何获得这些更改?

我当前的做法是循环浏览所有打开的选项卡,并每 10-20 秒检查一次“youtube.com/watch?v=”子字符串。

编辑:

代码:

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)

最佳答案

你应该尝试这样的事情:

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');
}
}
});

关于javascript - 在 Firefox 中获取选项卡导航事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34483320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com