在Discuz!系统中禁止视频右键菜单,可通过以下两种方案实现:
方案一:模板层注入属性(推荐)
1. 打开模板文件:template/您的模板目录/forum/discuzcode.htm
2. 查找视频解析代码段(约在410行附近),找到类似:
<video ... controls="controls">
3. 修改为:
<video ... controls="controls" oncontextmenu="return false;" contextmenu="return false;" disablePictureInPicture controlsList="nodownload noplaybackrate">
方案二:全局JS拦截(更彻底)
在公共JS文件或后台-全局-站点信息-统计代码添加:
- document.addEventListener('DOMContentLoaded', function(){
- [].forEach.call(document.getElementsByTagName('video'), function(v){
- v.oncontextmenu = function(){return false};
- v.controlsList.add('nodownload');
- Object.assign(v,{
- onkeydown:function(e){e.preventDefault()},
- controlslist:"nodownload nofullscreen noremoteplayback"
- });
- });
- });
复制代码
该方案特点:
1. 双重防护:同时处理右键菜单和快捷键操作
2. 兼容移动端:禁用画中画/远程播放功能
3. 阻止下载:隐藏原生控件的下载按钮
4. 不影响正常播放操作
注意事项:
1. 修改模板前请做好备份
2. 若使用CDN需刷新缓存
3. 部分浏览器扩展可能绕过限制,此为正常现象
4. 该方案适配Discuz! X3.4及以上版本
如需更深度定制播放器行为,可考虑通过DZ插件网的播放器增强组件实现完整版权保护方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |