JavaScript 禁用网页右键、复制及另存为功能的方法

作者:代码拾荒时间:2026-10-28 08:03:24浏览:624

本文介绍如何使用 JavaScript 禁用网页的右键菜单、文本复制以及浏览器“另存为”功能。通过重写 document.oncontextmenu 和 onselectstart 事件,或在 body 标签添加属性,可有效限制用户复制内容。此外,利用 noscript 标签嵌入 iframe 可阻止另存为操作。文章还提供了启用这些限制及通过浏览器设置禁用 JS 的方法。

禁用右键与复制功能

1、使右键和复制失效 方法1: 在网页中加入以下代码:

<script language="Javascript"> document.oncontextmenu=new Function("event.returnValue=false"); document.onselectstart=new Function("event.returnValue=false"); </script>

其次,介绍第二种实现方式。

该方法需要在 HTML 的 body 标签中直接添加事件属性。

<body oncontextmenu="return false" onselectstart="return false"> 或 <body oncontextmenu="event.returnValue=false" onselectstart="event.returnValue=false">

从原理上看,上述第二种方法与第一种方法的效果是一致的。

如果仅需限制复制功能,而允许右键菜单,可采用第三种方法。

在 body 标签中增加 oncopy 事件处理,具体代码如下: <body oncopy="alert('对不起,禁止复制!');return false;">

禁止网页另存为

接下来,解决通过浏览器菜单“文件”->“另存为”下载网页的问题。仅禁止右键和复制无法阻止用户通过菜单保存文件,因此需要额外措施。

<noscript> <iframe src="*.htm"></iframe> </noscript>

当用户尝试另存网页时,上述代码会导致浏览器提示“无法保存Web页”的错误。另外,也可以使用 event.preventDefault() 方法来阻止 oncontextmenu() 以及 onselectstart() 事件的默认行为。

document.oncontextmenu=function(evt){ evt.preventDefault(); } document.onselectstart=function(evt){ evt.preventDefault(); };

启用限制与绕过方法

既然可以禁止这些操作,自然也可以重新启用。只需将相关事件属性重新赋值即可,可以赋值为 null、空字符串或布尔值等。

document.oncontextmenu=""; document.onselectstart=true;

另一种绕过限制的方法是禁用 JavaScript。在谷歌浏览器中,依次选择“设置” -> “隐私设置” -> “内容设置” -> “JavaScript”,然后选择“不允许任何网站运行 JavaScript”,设置完成后刷新页面即可生效。

作者最新文章