如何在html中禁止文字的复制
在写页面时,会遇到需要禁止用户复制网页里的某些内容的情况,例如:小说网站等,这时我们就需要通过一些方法来控制,才能达到禁止复制这个目的。
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()'
示例代码如下:
<body leftmargin=0 topmargin=0 oncontextmenu='return false' ondragstart='return false' onselectstart ='return false' onselect='document.selection.empty()' oncopy='document.selection.empty()' onbeforecopy='return false' onmouseup='document.selection.empty()'></body>
2.禁止网页另存为:
在<body>后面加入以下代码:
<body></body>
<noscript>
<iframe src=”*.htm”></iframe>
</noscript>
此时你会发现在电脑端已经无法选择复制,但是在移动端却还能选中复制,那么就需要再添加如下css代码来实现移动端也禁止选中文字。
3.css代码来实现禁止选中文字
*{
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;
}
此时,到这一步,正常的选择和复制都已经被禁用了,但是懂行的人还可用浏览器的查看源码和调试工具来直接从代码中复制内容。
4.禁用F12按键
//禁用F12
window.onkeydown = window.onkeyup = window.onkeypress = function (event) {
// 判断是否按下F12,F12键码为123
if (event.keyCode == 123) {
event.preventDefault(); // 阻止默认事件行为
window.event.returnValue = false;
}
}
5.禁用调试工具
var threshold = 160; // 打开控制台的宽或高阈值
// 每秒检查一次
var check = setInterval(function() {
if (window.outerWidth - window.innerWidth > threshold ||
window.outerHeight - window.innerHeight > threshold) {
// 如果打开控制台,则刷新页面
window.location.reload();
}
}, 1000);
到这一步,已经基本限制了大部分的复制功能,但是对于懂行的来说还是不能完全限制,需要完全禁止还需要探讨更多方法来实现!!!!
来源:oschina
链接:https://my.oschina.net/u/4343420/blog/4319107