【发布时间】: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