【发布时间】:2014-07-30 20:04:14
【问题描述】:
我只需要检测不触发任何操作的点击。请参见下面的示例。
<video id="video" width="320" height="240" src="http://vjs.zencdn.net/v/oceans.mp4" controls>
<source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
var video = document.getElementById("video");
video.onclick = function(){
alert("This click is useless");
};
在这种情况下,当用户点击视频时,他会收到一条警报消息。但是,问题是,我不希望在用户单击播放按钮、暂停按钮或音量控制时显示警报消息。我希望它仅在用户单击视频而不是任何按钮时显示。之后我还需要打开一个弹出窗口,所以我不能使用 setTimeout 或类似的方法来让浏览器不阻止弹出窗口。
我知道我可以读取坐标并计算是否有按钮,但我更喜欢另一种解决方案。
【问题讨论】:
-
你能澄清一下吗?您的规范中未指定双击视频并执行操作(全屏,至少在我的浏览器上)
-
然后我添加到我的任意规范:双击时,第一次单击不执行操作,因此它被认为是“无用”单击。不过,我看不出它有什么不同。
-
控件的浏览器实现各不相同 - 对视频的一些点击实际上充当控件。那些呢?
-
在视频视口上放置一个清晰的点击捕捉 div 会更简单、更兼容。对你来说问题是 click() 在 pause() 之前触发,所以如果你希望在 上发生事件,你需要一个超时
标签: javascript html html5-video