javascript - 通过 WebExtension 向所有嵌入式 YouTube 视频添加事件监听器

标签 javascript google-chrome-extension html5-video dom-events firefox-addon-webextensions

我想实现一个函数,每当在任何网站上播放任何 HTML5 (YouTube) 视频时都会调用该函数。我尝试使用 API:

document.documentElement.addEventListener("playing", function(){
    alert("Video playing")
});

和 jQuery:

$('video').on('playing', function(){
    alert("Video Playing");
});

但是,两者都不起作用。

最佳答案

我自己找到了解决办法。对于那些有兴趣的人:

内容脚本需要像这样在 list 中初始化:

"content_scripts": [
   {
     "matches": ["<all_urls>],
     "js": ["name_of_javascript.js"]
     "run_at" "document_idle"  // "document_end" also works
     "all_frames":true
    }
 ],
   ...

添加标签“all_frames”很重要:true,以便将内容脚本注入(inject)所有子帧。

Content_Script-代码:

var videos = document.getElementsByTagName("video");
if(videos.length>0) {
   for (var i=0; i<videos.length; i++){
        videos[i].addEventListener("playing", function(e){
          ................
          }
      }
 };

这对我有用。

如果您只想为 Youtube-Videos 添加监听器,只需将 document.getElementsbyTagName 替换为 document.querySelectAll('video[src*="youtube"]')。

关于javascript - 通过 WebExtension 向所有嵌入式 YouTube 视频添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38010071/

相关文章:

javascript - Wordpress 过滤按钮 : Content fading out and fading in

javascript - Bootstrap 模式弹出窗口在 aspx 中无法正常工作

Javascript 字符串编码 Windows-1250 到 UTF8

google-chrome-extension - 使 Chrome 扩展弹出窗口透明

javascript - 如何从 chrome 调试 API 中捕获时间线数据

javascript - 测试浏览器是否支持未静音播放内联视频

css - 如何删除 Video.js 中的大播放按钮阴影?

javascript - 点击 6 次后 ui 路由器刷新崩溃

javascript - 如何通过单击按钮在 Chrome 中获取当前 URL

HTML5 视频 - 最大播放速率是多少?