如何在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);
到這一步,已經基本限制了大部分的復制功能,但是對於懂行的來說還是不能完全限制,需要完全禁止還需要探討更多方法來實現!!!!
