如何阻止模态框中JWPlayer视频双击触发全屏?
解决JWPlayer模态框内禁止双击全屏的问题
当然有办法搞定这个需求!下面给你两种实用的方案,根据你的代码场景选择就行:
方案一:利用JWPlayer自身事件拦截双击
最直接的方式就是监听JWPlayer的dblclick事件,然后阻止它的默认全屏行为,精准针对播放器的双击操作:
// 初始化或获取你的JWPlayer实例 const player = jwplayer('your-player-id'); // 监听双击事件并阻止默认动作 player.on('dblclick', function(event) { // 阻止默认的全屏触发逻辑 event.preventDefault(); // 可选:阻止事件冒泡,避免影响其他元素 event.stopPropagation(); });
⚠️ 注意:如果你的代码是在播放器初始化前写的,记得把这段逻辑放在JWPlayer的ready事件回调里,确保播放器已经加载完成:
player.on('ready', function() { player.on('dblclick', function(event) { event.preventDefault(); event.stopPropagation(); }); });
方案二:通过DOM容器拦截双击事件
如果不想修改播放器的初始化逻辑,也可以在模态框的视频父容器上拦截双击事件,不让事件传递到JWPlayer的视频元素上:
// 获取模态框中的JWPlayer容器(根据你的实际类名调整) const playerContainer = document.querySelector('.modal-dialog .jwplayer'); // 给容器绑定双击事件,拦截默认行为 playerContainer.addEventListener('dblclick', function(e) { e.preventDefault(); e.stopPropagation(); });
这种方式适合已经有现成播放器实例、不想改动播放器配置的场景,从DOM事件流的源头阻止双击触发全屏。
两种方案都能有效禁止用户双击视频进入全屏,你可以根据自己的代码结构选择最顺手的一种~
内容的提问来源于stack exchange,提问作者pac w
相关产品推荐
相关产品推荐

