用于侦听YouTube HTML5播放器中的网址更改的JavaScript

前端之家收集整理的这篇文章主要介绍了用于侦听YouTube HTML5播放器中的网址更改的JavaScript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在撰写Chrome扩展程序,因此我需要能够收听YouTube网址中的更改(即,看到您切换了视频). YouTube使这很难,因为HTML5视频播放器没有完整页面重新加载,没有更改URL片段(无法监听hashchange事件 as other answers have suggested).听 pushState也不起作用.我花了很多时间在这里寻找答案,以及迄今为止我见过的所有答案(除了一个 – 我真的不想使用)不起作用.

我见过的唯一答案是设置超时以每秒运行一次以查看URL是否发生了变化(丑陋!).

编辑:The possible duplicate question是一个完全不同的问题 – 一个处理听取URL更改另一个处理扩展加载.

问题:如何在不轮询的情况下检测YouTube HTML5视频播放器中的网址更改?

解决方法

我的解决方案是简单地检查#progress元素上的transitionend事件(这是显示在顶部的红色进度条).
document.addEventListener('transitionend',function(e) {
    if (e.target.id === 'progress')
        // do stuff
});

更新:

更清晰的解决方案是只监听由spfjs触发的spfdone事件,这是YouTube用来操纵推送状态的框架. Credit to Rob for the answer.

document.addEventListener('spfdone',function() {
    // do stuff
});

猜你在找的HTML5相关文章