如何在html中禁止文字的复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在html中禁止文字的复制相关的知识,希望对你有一定的参考价值。

可以禁止用户右键,使用js操作禁止,参考以下代码

<script type="text/javascript">
document.oncontextmenu=function(e)return false;
</script>  
<body onselectstart="return false">

也可以直接禁止用户选中页面从而实现禁止复制的目的,可以在css里面操作禁止,参考以下代码

body   
    -webkit-touch-callout: none;  
    -webkit-user-select: none;  
    -khtml-user-select: none;  
    -moz-user-select: none;  
    -ms-user-select: none;  
    user-select: none;  

以上两种方法都可实现禁止用户复制。

参考技术A 一、禁止复制文字代码
<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()'>
二、真正的屏蔽鼠标右键
<script language="JavaScript">
<!--

if (window.Event)
document.captureEvents(Event.MOUSEUP);

function nocontextmenu()

event.cancelBubble = true
event.returnValue = false;

return false;


function norightclick(e)

if (window.Event)

if (e.which == 2 || e.which == 3)
return false;

else
if (event.button == 2 || event.button == 3)

event.cancelBubble = true
event.returnValue = false;
return false;




document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
//-->
</script>
三、
<SCRIPT LANGUAGE=javascript>
function click() alert('禁止左键复制!')
function click1() if (event.button==2) alert('禁止右键点击~!')
function CtrlKeyDown()if (event.ctrlKey) alert('非法拷贝将损害您的系统!')
document.onkeydown=CtrlKeyDown;
document.onselectstart=click;
document.onmousedown=click1;
</SCRIPT>

把上面的代码放到</head> 与<body> 之间我已经调试过了 没问题

禁止保存网页

<NOSCRIPT><IFRAME src=Example132.htm></IFRAME></NOSCRIPT>

下面这段代码,就能搞定在网页中又禁止复制、又禁止键盘复制、还能禁止选择。
<script language="Javascript">
document.oncontextmenu=new Function("event.returnValue=false");
document.onselectstart=new Function("event.returnValue=false");
</script>
四、
onselect="document.selection.empty()"//禁止选中
oncopy="document.selection.empty()"//禁止复制
下面给你个演示:
<html>

<head><title>禁止右键和禁止使用复制键</title>

<script language="javascript">

function onKeyDown()

if ((event.keyCode==116)||(window.event.ctrlKey)||(window.event.shiftKey)||(event.keyCode==122))

event.keyCode=0;
event.returnValue=false;



function yxl()
if(window.event.altKey)

window.event.returnValue=false;


document.onkeydown=yxl ;

</script>

</head>

<!--在网页中加上下面代码//-->

<body onkeydown="onKeyDown()" oncontextmenu="return false">
嘿嘿,把我复制走吧,我跟你拉!呵呵
</body>

</html>
五、
禁止复制代码
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) //reloads the window if Nav4 resized
if (init==true) with (navigator) if ((appName=="Netscape")&&(parseInt(appVersion)==4))
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage;
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

MM_reloadPage(true);
//-->
</script>
</head>
<body leftmargin=0 topmargin=0 onmousemove='HideMenu()' oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false" onmouseup="document.selection.empty()">
<noscript><iframe src="/*>";</iframe></noscript>本回答被提问者采纳
参考技术B

我知道的有以下几种:

    通过样式来控制css代码:
    选择器
    -moz-user-select: none;
    -khtml-user-select: none;
    user-select: none;

    通过HTML属性:

<div unselectable="on" onselectstart="return false;" style="-moz-user-select:none;">XXXXXXXXXX</div> 

说明:
unselectable针对IE
onselectstart针对Chrome、Safari
-moz-user-select是firefox专有的 

参考技术C body属性中加入:

<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false" onmouseup="document.selection.empty()">

网页不让用户复制方法总汇,设置html禁止选择,保护源码,js禁止复制文字

这篇文章主要讲解:右键复制失效方法、菜单"文件"-"另存为"失效方法、防止查看源代码进行复制的方法、防止页面缓存的方法。来达到一定的代码保护效果

 

右键复制失效方法:

方法一:

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

 

方法二:

<body oncontextmenu="return false" onselectstart="return false">

 

或者

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

 

方法三:

<body oncopy="alert(‘对不起,本网页禁止复制!‘);return false;">

 

方法四:

body{//通过css设置body
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;
}

 

上面方法都是针对整个页面的,如果只想对某一个div的内容不让用户复制,你需要这样做把body换位对应div

 

菜单"文件"-"另存为"失效方法:  

如果只是禁止了右键和选择复制,别人还可以通过浏览器菜单中的"文件"-"另存为"拷贝文件。为了使拷贝失效,可以在<body>与</body>之间加入以下代码: 

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

 

这样用户再选择“另存为”,就会出现"无法保存Web页"的错误

 

防止查看源代码进行复制的方法:

通过js实现静止右键和F12,Shift+F10,Ctrl+Shift+I等查看源代码的方法:

<script language="javascript">
    function click(e) {
        if(document.all) {
            
            if(event.button == 2 || event.button == 3) {
                oncontextmenu = return false;
            }
        }
        if(document.layers) {
            if(e.which == 3) {
                oncontextmenu = return false;
            }
        }
    }
    if(document.layers) {
        document.captureEvents(Event.MOUSEDOWN);
    }
    document.onmousedown = click;
    document.oncontextmenu = new Function("return false;")
    document.onkeydown = document.onkeyup = document.onkeypress = function() {
        //123屏蔽F12,73屏蔽Ctrl+Shift+I,121屏蔽Shift+F10
        if(window.event.keyCode == 123 || window.event.keyCode == 73 || window.event.keyCode == 121) {
            window.event.returnValue = false;
            return(false);
        }
    }
</script>

 

 

 

防止页面缓存的方法

方法一:通过设置mate

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=8">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">

 

方法二:对不需要缓存的图片,js等文件地址后添加随机数即可,例如:

<img src="picture.jpg?1222259157.415" alt="">

 

<script> 
document.write("<script type=‘text/javascript‘ src=‘test.js?"+Math.random();+"‘></script>"); 
</script>

 

 

总结:

以上方法只能单纯的防止用户不能复制,起一定的保护源码的作用,主要只防止不劳而获的小白。而且浏览器很多都自带有查看网页源代码的功能,目前为止这块是没办法做到真正屏蔽的,我们只能通过压缩混淆加密等方法来处理我们的源码,能增加阅读破解的成本。

以上是关于如何在html中禁止文字的复制的主要内容,如果未能解决你的问题,请参考以下文章

在html中如何将鼠标选中文字功能禁止,出现不能选中复制的效果

html中如何禁止鼠标拉成蓝色那种选择

如何复制chrome浏览器上禁止复制的网页文字

h5通过css实现禁止ios端长按复制选中文字的方法

如何在C#中,文本框不能粘贴功能

网页不让用户复制方法总汇,设置html禁止选择,保护源码,js禁止复制文字