在firefox中获取选项卡导航事件
Getting tab navigation events in firefox
我正在开发一个扩展,用于检测后台运行的youtube视频并将其记录下来。
我无法从高级tabs
API获得的是选项卡的导航事件
例如,当我访问youtube.com时,我可以从"就绪"事件中获取该事件。
但当我点击视频链接将其加载到同一个选项卡中时,我不会收到任何事件。此外,当一个新视频在最后一个视频结束后自动加载(自动播放)时,我不会收到任何事件。
如何获得这些更改?
我目前的破解方法是循环浏览所有打开的选项卡,每隔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');
}
}
});
相关文章:
- 导航到特定事件的另一个变量页面
- jQuery与导航菜单上的mouseover事件冲突.
- 现代网络爬虫是使用 click 事件还是直接导航到锚标记上的 href
- androidphonegap-在单个html页面中导航功能或事件时实现后退按钮
- 涡轮链路触发事件链,但随后发生正常导航(Rails 4)
- 主干路由器导航到../#/<路由>而不触发路由器事件.如何
- WebView 不会在 YouTube 中触发导航事件
- 在用户导航到其他 URL 之前触发的浏览器事件
- 煎茶触摸幻灯片导航项上的单击事件
- 多个配对导航元素的悬停事件
- AngularJS$locationChangeStart事件取消路由导航
- 在firefox中获取选项卡导航事件
- 如何防止在其他页面的导航上发生单击事件
- 如何在jquery mobile的占位符事件上导航到新页面
- React.js中的动态子导航(传播事件和属性)
- 当响应导航崩溃开始时引发JavaScript事件
- Cordova白名单插件手动检测阻塞导航(事件)
- 是否存在检测最后一次导航事件是否由后退或前进浏览器按钮引起的方法
- Html5History触发两次导航事件
- 是否可以用javascript中断导航事件来测试链接目标