Javascript/jQuery - 更改对象数据属性不会停止在 Chrome 中播放视频



我有一个如下的对象:

<object data="black.html" width="100%" class="vidlink vid1link"></object>

然后我使用以下代码加载youtube视频:

$(".vid1link").attr("data", "https://www.youtube.com/embed/MhKxm_G6FRw?autoplay=1");

这很管用。但我希望用户";关闭视频";。以下代码触发数据属性更改为黑色页面:

$(".vid1link").attr('data', 'black.html');

这在Firefox和IE/Edge上运行良好。但在chrome上,视频仍在继续播放。我已经检查了控制台中的元素,它成功地用black.html替换了数据,但它仍然继续播放视频,如前所述,仅在Chrome中播放。

这是已知的bug还是正常的chrome行为?

非常感谢

编辑:现在我已经找到了一个解决办法,通过向youtube视频发送暂停请求:

将以下内容添加到youtube链接:enablejsapi=1

this.contentWindow.postMessage('{"event":"command","func":"stopVideo","args":""}', '*')

虽然-如果页面上有多个视频,这似乎不起作用。

$('.vid1link').replaceWith('<object data="black.html" width="100%" class="vidlink vid1link"></object>');

在替换属性之前,您需要删除完全旧的元素

document.getElementsByClassName(".vid1link").setAttribute('data', 'black.html');

最新更新