Javascript 为什么用于视频的.pause()不再在chrome中工作?
我使用pause()停止视频。由于某些原因,这在chrome中不再起作用-视频短暂停止,然后继续播放,我完全迷失了我的错误所在 几个月前,我开发了一个使用pause()控制视频播放的脚本。一切都很好(Firefox仍然如此),但由于某种原因,它在过去两个月的某个地方停止了在chrome上的工作。我已经把它完全精简为几行代码,但我的pause()函数在Ubuntu18.04的Chrome和Windows7的最新Chrome中仍然无法使用Javascript 为什么用于视频的.pause()不再在chrome中工作?,javascript,jquery,google-chrome,video,Javascript,Jquery,Google Chrome,Video,我使用pause()停止视频。由于某些原因,这在chrome中不再起作用-视频短暂停止,然后继续播放,我完全迷失了我的错误所在 几个月前,我开发了一个使用pause()控制视频播放的脚本。一切都很好(Firefox仍然如此),但由于某种原因,它在过去两个月的某个地方停止了在chrome上的工作。我已经把它完全精简为几行代码,但我的pause()函数在Ubuntu18.04的Chrome和Windows7的最新Chrome中仍然无法使用 $(文档).ready(函数(){ var vid=doc
$(文档).ready(函数(){
var vid=document.getElementById(“视频播放器”);
$(“#视频播放器”)。单击(功能(e){
参阅暂停();
});
});
您的浏览器不支持视频标记。
(我知道它是DOM和jquery的一种有点丑陋的混合体,因为我在脚本的其余部分大部分都使用jquery,但这应该不是问题,不是吗?)我无法告诉您更改了什么,但添加
e.preventDefault
修复了它:
$( "#videoplayer" ).click(function(e) {
e.preventDefault(); // <=====================
vid.pause();
});
这意味着chromium native player可能已经处理了点击切换播放/暂停。事件按预期发送。@bigless-是的,这也是我的理论,我刚刚验证了。更新为建议一个选项的操作。啊,我没有想到这一点。可能铬只是改变了点击的处理顺序。也许在它第一次应用默认的动作切换之前,暂停视频,然后执行video.pause(),现在则相反。这将解释这种行为。谢谢你的帮助!
$( "#videoplayer" ).click(function(e) {
if (!vid.paused) { // Check that video is playing when clicked
setTimeout(() => { // V. brief timer to allow default action to occur
if (!vid.paused) { // Is it still playing?
vid.pause(); // Pause it
}
}, 0);
}
});