【问题标题】:How to detect YouTube video change in browser in Full screen如何在全屏模式下检测浏览器中的 YouTube 视频变化
【发布时间】:2017-09-20 12:47:36
【问题描述】:

每次加载新的 YouTube 视频时,我都会尝试运行一些 javascript(来自 chrome 扩展程序)。 所以我有一个内容脚本来监听事件:

// old youtube design
window.addEventListener("spfdone", process);
// new youtube design
window.addEventListener("yt-navigate-start", process);
// one-time early
document.addEventListener("DOMContentLoaded", process);
// one-time late postprocessing
window.addEventListener("load", process);

但是当视频全屏切换时它不起作用。 当 Youtube 标签处于全屏模式时,如何收听视频更改?

【问题讨论】:

  • 我没有编辑,但我相信你的意思是内容脚本,而不是背景脚本?
  • @Xan 是的,已更改,谢谢。
  • 在您的情况下,一个复杂的情况是全屏的 YouTube HTML5 播放器会改变播放的内容,但会延迟页面的实际导航/刷新,直到退出全屏;因此,即使您确实捕获了该事件,您的其他代码(可能试图抓取一些信息)也可能看不到任何更新。
  • 一种防弹方法似乎是用您自己的添加loadend 事件侦听器的包装器来欺骗 XMLHttpRequest.prototype.send。您可以分析 reponseURL 并检查 DOM。注意,欺骗必须在页面上下文中执行,参见Insert code into the page context using a content script

标签: javascript video google-chrome-extension youtube html5-video


【解决方案1】:

我是如何解决的: 反复检查浏览器在 HTML 中播放的是什么视频:

var link = String(document.getElementsByClassName("ytp-title-link yt-uix-sessionlink")[0])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2019-05-22
    • 2016-07-13
    相关资源
    最近更新 更多