【问题标题】:Can't block html5 video element using javascript无法使用 javascript 阻止 html5 视频元素
【发布时间】:2012-04-01 01:25:04
【问题描述】:

YouTube 最近开始在某些页面上播放 html5 webm 版本的视频,即使您的浏览器中提供了 flash 并且您未处于 html5 试用版中。

例如这些视频默认播放html5 webm:

http://www.youtube.com/watch?v=CuU91TU7O3s

其他示例 (观看?v=Z3IGfwcGBP8) (看?v=kYcNJQ3Y6Sg) (观看?v=c6tEKLT5G2M)

我正在尝试使用greasemonkey javascript 阻止视频元素。对于大多数 youtube 视频,只需删除视频元素即可。例如:

var h5video = document.getElementsByTagName("video")[0];
h5video.parentNode.removeChild(h5video)

但是在这个特定页面上,即使您删除了视频元素,视频仍然会播放,您会听到音频。 http://www.youtube.com/watch?v=cCn-rmgECY0

为什么视频还在播放?

如何使用 javascript 阻止视频?我希望脚本能够真正中断或阻止视频加载,而不仅仅是以某种方式暂停/停止视频。

【问题讨论】:

  • 暂停按钮只会暂停链接中的视频。音频仍在播放并回显。我认为该页面同时播放 html5 和 flash 视频。这是您的视频,但在 Flash 中:youtube.com/v/CuU91TU7O3s
  • 我在想你为什么要屏蔽这么多视频

标签: youtube greasemonkey html5-video


【解决方案1】:

使用 JavaScript 删除 videoaudioembedobject 元素:

try {
    var h5video = document.getElementsByTagName("video")[0];
    h5video.parentNode.removeChild(h5video);

    var h5audio = document.getElementsByTagName("audio")[0];
    h5audio.parentNode.removeChild(h5audio);

    var object = document.getElementsByTagName("object")[0];
    object.parentNode.removeChild(object);

    var embed = document.getElementsByTagName("embed")[0];
    embed.parentNode.removeChild(embed);
}
catch(e) {
    console.log(e)
}

参考文献

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2023-03-29
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多