【问题标题】:Event Fired by YouTube When Video Page is Loaded加载视频页面时由 YouTube 触发的事件
【发布时间】:2015-12-24 23:34:19
【问题描述】:

我正在构建一个 Firefox 插件,它会在 YouTube 加载视频页面时解析 URL(例如 https://www.youtube.com/watch?v=6tOQsswD4Tc)。使用 Firefox 的附加组件api for Tabs,当视频页面完成加载时,我无法捕捉到该事件。这可能是由于 YT 新的异步加载。因为如果我按 F5,我可以捕获事件。我正在使用此代码:

tabs.on("ready", function(tab) {
  if(tab.url.search(/youtube\.com\/watch\?v=/)!=-1){
    // do stuff
  }
});

我尝试将其更改为“就绪”、“加载”、“页面显示”,但似乎没有任何效果。如何捕获页面加载事件?

【问题讨论】:

  • 是的,这很棘手,我认为 youtube 会做类似 PJAX 的事情。所以我所做的是使用状态进度监听器。但更熟悉的方法是插入内容脚本并收听 youtube 加载栏。 @RobW 说他们正在做推送状态的东西,虽然这很有趣,但解决方案在这里:stackoverflow.com/questions/18397962/…
  • 谢谢!这正是我想要的。如果你能把这个作为答案,我可以接受。再次感谢!

标签: javascript firefox-addon firefox-addon-sdk


【解决方案1】:

链接到解决方案提到chrome.webNavigation.onHistoryStateUpdated, the equivalent of that in Firefox isonStateChangeinnsIWebProgressListener`:https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebProgressListener

另一个选项是插入内容脚本以在 youtube 加载栏上收听过渡动画结束,正如该堆栈帖子中所指出的那样。

Chrome extension is not loading on browser navigation at YouTube

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多