Javascript 在firefox中获取选项卡导航事件

Javascript 在firefox中获取选项卡导航事件,javascript,firefox-addon,firefox-addon-sdk,Javascript,Firefox Addon,Firefox Addon Sdk,我正在开发一个扩展来检测在后台运行的youtube视频并记录它们 我无法从高级tabsAPI获得的是选项卡的导航事件 例如,当我进入youtube.com时,我可以从“就绪”事件中获取该事件 但当我点击视频链接将其加载到同一个选项卡时,我没有收到任何事件。另外,当一个新视频在最后一个视频结束后自动加载(自动播放)时,我不会得到任何事件 如何获得这些更改 我目前的做法是循环浏览所有打开的选项卡,每10-20秒检查一次“youtube.com/watch?v=“substring” 编辑: 代码:

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

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

例如,当我进入youtube.com时,我可以从“就绪”事件中获取该事件

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

如何获得这些更改

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

编辑:

代码:


您应该尝试以下方法:

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

您应该尝试以下方法:

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

同时收听“激活”和“页面显示”事件,您应该被覆盖。同时收听“激活”和“页面显示”事件,您应该被覆盖。不提供任何输出。有什么想法吗?@goelakash你必须打开“浏览器控制台”并启用“日志”(灰色的东西)。我正在使用插件开发环境,所以我在终端(jpm run-b/usr/bin/firefox)中获得控制台日志输出。我从代码中获取控制台日志。可能您的URI不是以
https://www.youtube.com
。如果您想调试代码,您可以注释掉URI上的条件…不提供任何输出。有什么想法吗?@goelakash你必须打开“浏览器控制台”并启用“日志”(灰色的东西)。我正在使用插件开发环境,所以我在终端(jpm run-b/usr/bin/firefox)中获得控制台日志输出。我从代码中获取控制台日志。可能您的URI不是以
https://www.youtube.com
。如果您想调试代码,可以在URI上注释掉条件。。。