禁止页面右键复制文字以及禁止打开调式工具

平时我们在豆丁文档或者360文档想复制文档的时候发现,不能右键复制,那么他们是如何做到的呢?

  1. 禁止右键,在body标签内加入如下代码即可。
<body 
oncontextmenu='return false'                   禁止右键
ondragstart='return false'                     禁止拖动
onselectstart ='return false'                  禁止选中
onselect='document.selection.empty()'          禁止选中
oncopy='document.selection.empty()'            禁止复制
onbeforecopy='return false'                    禁止复制
>
  1. 禁止打开浏览器的调试着工具,在js脚本中添加下载这段代码即可
var threshold = 10; // 打开控制台的宽或高阈值
// 每秒检查一次
var check = setInterval(function() {
    if (window.outerWidth - window.innerWidth > threshold || 
        window.outerHeight - window.innerHeight > threshold) {
        // 如果打开控制台,则刷新页面
        alert('不要想打开控制台')            //注意:这句话很恶心,慎重打开。哈哈哈....
        window.location.reload();
    }
}, 1000);

3.禁止网页中的部分文本选中
html中禁止文字被选中

user-select:none |text| all | element

取值:

none:文本不能被选择

text:可以选择文本

all :当所有内容作为一个整体时可以被选择。如果双击或者在上下文上点击子元素,那么被选择的部分将是以该子元素向上回溯的最高祖先元素。

element:可以选择文本,但选择范围受元素边界的约束

说明:

1.IE6-9不支持该属性,但支持使用标签属性 onselectstart="return false;" 来达到 user-select:none 的效果;Safari和Chrome也支持该标签属性;

2.直到Opera12.5仍然不支持该属性,但和IE6-9一样,也支持使用私有的标签属性 unselectable="on" 来达到 user-select:none 的效果;unselectable 的另一个值是 off;

3.除Chrome和Safari外,在其它浏览器中,如果将文本设置为 -ms-user-select:none;,则用户将无法在该文本块中开始选择文本。不过,如果用户在页面的其他区域开始选择文本,则用户仍然可以继续选择将文本设置为 -ms-user-select:none; 的区域文本;

4.对应的脚本特性为userSelect。

代码如下:

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>禁止选中</title>
</head>
<style>
    .demo1 {
    	 300px;
    	height: 300px;
        background: skyblue;
        /* 兼容性 */
        -webkit-user-select: none;
        -moz-user-select: none;
        -o-user-select: none;
        user-select: none;
        
    }
</style>
 
<body>
    <div class="demo1" onselectstart="return false;" unselectable="on">
	测试文本
    </div>
</body>
 
</html>

当然,一般情况下要想复制禁止右键的页面。
可以打开调试工具后,在console里面输入document.body.innerText
这样就可以复制网页文本信息了。

原文地址:https://www.cnblogs.com/Bianco/p/13522768.html