要禁止鼠标右键和复制功能,可以编写如下的封装函数:
javascript
function preventDefaultCopy(event) {
// 禁止右键 菜单和复制
event.preventDefault();
event.stopPropagation();
return false;
}
// 在需要禁止复制的元素上添加该事件监听器
element.addEventListener('contextmenu', preventDefaultCopy);
这个函数通过监听右键 菜单事件(contextmenu
),在事件触发时调用 preventDefault()
和 stopPropagation()
方法,禁止了右键 菜单和复制功能的默认行为。将该函数添加到需要禁止复制的元素的事件监听器中即可实现禁止复制功能。
其他方法可以禁止鼠标右键和复制功能
-
禁止右键菜单:
oncontextmenu="return false;"
:这会禁止右键 菜单弹出。oncontextmenu="window.event.returnValue=false;"
:与上一种方法类似,也是禁止右键 菜单弹出。oncontextmenu="event.preventDefault();"
:同样可以禁止右键 菜单弹出。
-
禁止复制:
oncopy="return false;"
:这会禁止复制操作。oncopy="document.selection.empty();"
:与方法一相似,也是禁止复制操作。oncopy="navigator.userAgent='';"
:通过设置 userAgent 为空字符串,这可以禁止复制操作。
-
同时禁止右键菜单和复制:
oncontextmenu="return false;" oncopy="return false;"
:在同一个元素上同时设置这两种事件,可以同时禁止右键菜单和复制操作。
这些方法可以在 HTML 标签中使用,比如 <div oncontextmenu="return false;">
或 <body oncontextmenu="return false;" oncopy="return false;">
,或者在 JavaScript 中使用,比如 element.oncontextmenu = function(e) { e.preventDefault(); e.stopPropagation(); return false; }
。但请注意,这些方法可能会影响用户体验,因此应谨慎使用。
@漏刻有时