JavaScript 禁用页面复制与右键菜单完整方案
本文介绍了使用 JavaScript 禁用网页复制功能和右键菜单的多种方法。通过设置 document.body 的 onselectstart、oncontextmenu、oncopy 等事件处理程序,可有效防止用户通过右键、快捷键或拖拽复制内容。文章提供了完整的代码示例及注意事项,包括代码放置位置和浏览器兼容性处理。
禁用右键菜单与复制功能概述
在 HTML 的 body 标签中添加 oncontextmenu="return false" 属性,可以禁用网页的右键菜单,但用户仍可通过快捷键进行复制操作。
JavaScript 禁用复制代码实现
以下是通过 JavaScript 代码禁用复制功能的方法:
具体代码如下:
<script type="text/javascript">
document.body.onselectstart=document.body.oncontextmenu=function(){ return false;}
</script> 需要注意的是,这段代码必须放置在 body 元素之后。如果将其放在 head 标签内或 body 之前,代码将无法生效。
补充说明:document.body.onselectstart 用于控制页面内容的选中功能。
document.body.oncontextmenu 用于控制页面右键菜单的显示。
document.body.ondragstart 用于控制页面内容的拖拽功能,拖拽操作有时也可实现复制效果,因此在禁止复制时需一并禁用。
document.body.oncopy 用于控制页面内容的复制功能。当禁用此功能后,即使点击复制或使用了快捷键,剪切板中的内容也不会更新为刚复制的内容,而是保持之前的内容或为空。
document.body.oncut 用于控制页面内容的剪切功能,其禁用效果与禁用复制功能类似。
注意:如果应用了上述禁用功能后,页面某些角落仍允许右键或复制,可能是因为 body 元素未覆盖整个页面。此时可以在 body 标签中添加以下属性:
leftMargin=0 topMargin=0 style="width: 100%;height: 100%;"
通过 Body 属性全面禁用复制
通过设置 body 属性来全面禁用复制功能的代码如下:
具体代码如下:
<body oncontextmenu="return false" onselectstart="return false"
ondragstart="return false" oncopy="return false"
oncut="return false;
leftMargin=0
topMargin=0 style="width: 100%;height: 100%;" >
以下代码旨在禁用网页另存为功能,但经测试并未成功。如有知晓原因者,欢迎在评论区留言说明,谢谢。
<noscript>
<iframe scr="*.htm"></iframe>
</noscript>
</body> 屏蔽右键与快捷键的完整案例
以下是另一个 JavaScript 代码案例:
具体代码如下:
//******************** 屏蔽右键 ***********************
function click(e) {
if (document.all) {
if (event.button==1||event.button==2||event.button==3) {
oncontextmenu='return false';
}
}
if (document.layers) {
if (e.which == 3) {
oncontextmenu='return false';
}
}
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown=click;
document.oncontextmenu = new Function("return false;")
//*******************************************
document.onkeydown=function(evt){
if(document.selection.createRange().parentElement().type == "file"){
return false;
}
if ((event.keyCode==116)|| //屏蔽 F5 刷新键
(event.ctrlKey && event.keyCode==82)){ //Ctrl + R
event.keyCode=0;
event.returnValue=false;
}
if ((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
return false;
}
} JS reduce实战:数组去重、扁平化与分组统计
2026-11-05 13:05:36
JS代码怎么在线压缩?新手操作指南与工具推荐
2026-11-04 18:07:25
fflate 与 pako.js 性能对比:JS 解压库怎么选
2026-11-03 22:54:05
JS DOM查询性能优化:缓存引用与减少重排重绘
2026-11-03 22:48:27
在线运行JavaScript代码时的沙箱限制与跨域问题
2026-11-03 22:29:33
