1. 禁用选中和右键

body 部分绑定各种事件

οncοntextmenu='return false'    禁止右键
οndragstart='return false'    禁止拖动
onselectstart ='return false'    禁止选中
οnselect='document.selection.empty()'    禁止选中
οncοpy='document.selection.empty()'    禁止复制
onbeforecopy='return false'    禁止复制
οnmοuseup='document.selection.empty()'  禁止复制

2. 禁止网页另存为

<body> 后添加

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

3. 禁止选中文字

.unselected {
    moz-user-select: -moz-none;
    -moz-user-select: none;
    -o-user-select:none;
    -khtml-user-select:none;
    -webkit-user-select:none;
    -ms-user-select:none;
    user-select:none;
}

将类名 unselected 应用到需要被禁用的标签上。

4. 禁用 F12

其实就是捕捉键盘按键事件,判断为 F12 的,就阻止事件并返回。

window.onkeydown = window.onkeyup = window.onkeypress = function (event) {
    // 判断是否按下F12,F12键码为123
    if (event.keyCode == 123) {
    event.preventDefault(); // 阻止默认事件行为
    window.event.returnValue = false;
    }
}

F12 只是快捷键,快捷键禁用了,还可以通过浏览器的菜单调出控制台。

5. 禁用调试工具

就是禁用控制台,控制台内包括一系列的调试工具,抓包工具等等。

var threshold = 160; // 打开控制台的宽或高阈值
// 每秒检查一次
var check = setInterval(function() {
    if (window.outerWidth - window.innerWidth > threshold || 
        window.outerHeight - window.innerHeight > threshold) {
        // 如果打开控制台,则刷新页面
        window.location.reload();
    }
}, 1000);

大概的思路就是,定时去检查控制台是否打开(浏览器外部宽度和内容宽度是否存在一个可以显示控制台的宽度差值),若打开了,就刷新页面。

这个在我看来,刷新页面也没有用吧?一旦打开了控制台,刷新页面控制台也不会被关闭。

几种方法点评

以上几种方法都转自:HTML 禁止复制文字 - CSDN,前面部分通过 HTML ,js 和 css 等方式禁止复制文字,后面是防止通过浏览网页源码获取想要复制的文字。后半部分并不理想,防君子不防小人。

其实说到底,这些方式方法最终目的也不是完全禁止复制,而是增加复制文字的成本。就跟视频网站防止被盗版一样,技术手段总是一山更比一山高的。最好防盗手段应该是提升自己的会员服务质量,做到物有所值,物超所值,而不是搞什么点播进行二次收费。