我有一个如下的对象:
<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');