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

更新日期: 2017-11-24阅读: 7.3k标签: 复制

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


右键复制失效方法:

方法一:

<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>


总结:

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


链接: https://fly63.com/article/detial/164

原生Js实现复制(Copy)的方法总结,execCommand和clipboardData的使用

原生Js实现复制(Copy)的两种方法,一种是利用 clipboardData,另外一种则是用 execCommand(),今天将统一讲解一下关于他们的使用方法。

Js使用Object.assign()对象的复制、合并、封装等操作

Js使用Object.assign()对象的复制:Object.assign()只对顶层属性做了赋值,Object.assign()合并/封装等操作:具有相同属性的其他对象覆盖;null、undefined会被忽略;字符串会被封装成单字符的可枚举属性数组

程序员_代码神注释鉴赏大全(可复制粘贴)

程序员个性注释,让你的代码飞起来。一时兴起就收集了以下神注释,希望能为广大ITer带来快乐,以下是收集了以下神注释,希望能为广大程序员们带来快乐,缓解你们工作中的压力

Vue中结合clipboard实现复制功能

首先现在Vue中引入clipboard,在需要使用的组件中import 引入clipboard.不论是单按钮复制还是多按钮复制,一定要在页面加载DOM完成后先New出来具有复制功能的按钮,如果在函数内再New那么可能会出现点击复制按钮两次,才复制成功的现象

最全的js对象克隆和数组克隆方法

工作中我们需要用到对象或者数组的复制功能,提交的form表单,需要进行处理,例如将表单中的数组变成,连接的字符串,这个时候我们直接对原表单直接处理是不妥当的

原生js实现复制内容到剪切板,兼容pc、移动端(支持Safari浏览器)

在开发中经常会遇到这样的需求,第一种就是点击复制当前页面的链接,第二种就是类似卡券的功能,需要复制密码等等。纯js实现复制文本并提示复制成功(干货)适用所有浏览器

原生JS在网页上复制的所有文字后面自动加上一段版权声明

不少技术博客有这样的处理,当我们复制代码的时候,会自动加上一段本信息版权为XXXX,这是怎么实现的呢?其实实现的方式很简单,可以在我的网站页面上绑定一个 copy 事件,当你复制文章内容的时候

如何设置网页无法复制?

javascript设置网页无法复制的方法:在JavaScript代码中设置禁用右键菜单、复制、选择等操作,禁用Ctrl+c和Ctrl+v快捷键的使用,通过这种方法就可以实现网页无法复制。

HTML页面 用CSS实现禁止选中、复制和右键

最近在写页面的时候,需要在左上角加一个logo,但是复制的时候会把这张图片一块选中。那么我们可以通过CSS给它设置禁止选中,代码如下:

css如何设置不可复制?

css可以使用user-select属性来设置不可复制,此属性可以设置或检索是否允许用户选中文本,将此属性的属性值设置为none可以使文本不可选中。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!