网页不让用户复制方法总汇,设置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 == || event.button == ) {
oncontextmenu = 'return false';
}
}
if(document.layers) {
if(e.which == ) {
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 == || window.event.keyCode == || window.event.keyCode == ) {
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="">
<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禁止选择,保护源码,js禁止复制文字的更多相关文章
- 设置ZooKeeper服务器地址列表源码解析及扩展
设置ZooKeeper服务器地址列表源码解析及扩展 ZooKeeper zooKeeper = new ZooKeeper("192.168.109.130:2181",SESSI ...
- Linux基础3(用户/组管理,rpm,yum,源码安装软件)
用户管理 与用户相关的配置文件 /etc/passwd /etc/shadow /etc/skel /etc/defalut/useradd /etc/login.defs useradd userm ...
- 使用ShareSDK实现第三方授权登录、分享以及获取用户资料效果,项目中包含:源码+效果图+项目结构图
[Android应用开发详解]第01期:第三方授权认证(一)实现第三方授权登录.分享以及获取用户资料 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折, ...
- 关于js渲染网页时爬取数据的思路和全过程(附源码)
于js渲染网页时爬取数据的思路 首先可以先去用requests库访问url来测试一下能不能拿到数据,如果能拿到那么就是一个普通的网页,如果出现403类的错误代码可以在requests.get()方法里 ...
- iOS火焰动画效果、图文混排框架、StackView效果、偏好设置、底部手势等源码
iOS精选源码 高性能图文混排框架,构架顺滑的iOS应用. 使用OpenGLE覆盖阿尔法通道视频动画播放器视图. 可选最大日期截至当日日期的日期轮选器ChooseDatePicker 简单轻量的图片浏 ...
- Android恢复出厂设置流程分析【Android源码解析十】
最近看恢复出厂的一个问题,以前也查过这方面的流程,所以这里整理一些AP+framework层的流程: 在setting-->备份与重置--->恢复出厂设置--->重置手机---> ...
- eclipse 设置maven来自动下载源码与doc
通常我们通过maven来使用各种库文件,想要真正了解别人的类实现方法,需要查看别人的源码,maven给我们提供了这个便利,它不仅可以下载各种库文件,还会下载对应的源码和doc文档. 一.在工具栏找到W ...
- 如何设置eclipse下查看java源码
windows--preferences--java--installed jres --选中jre6--点击右边的edit--选中jre6/lib/rt.jar --点击右边的 source att ...
- Laravel 5.3 用户验证源码探究 (一) 路由与注册
https://blog.csdn.net/realghost/article/details/52558962 简介 Laravel 从 5.2 开始就有了开箱即用的用户验证,5.3 又在 5.2 ...
随机推荐
- java实现第四届蓝桥杯核桃的数量
核桃的数量 题目描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑).他的要求是: 各组的核桃数量必须相同 各组内必须能平分核桃( ...
- Linux 文件特殊权限-Sticky BIT
SBIT粘着位作用 只对目录有效 普通用户对该目录拥有w和x权限,即普通用户可以在此目录有写权限 如果没有粘着位,普通拥有写权限,就可以删除目录下所有文件,包括其他用户创建的文件,一旦有粘着位,只有r ...
- 洛谷P1255 数楼梯
题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 分析与代码 走n阶楼梯,无论是走一次走1阶还是2阶,总得迈出一步, 所以求n阶楼梯 ...
- Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to...异常处理
这个是打开Android Studio项目报的错误提示,单纯从上面的提示还是不能太直接的知道什么问题.后来我想这个项目的Gradle版本与我当前AS使用的版本不一致,可能是这个问题. 修改build. ...
- JAVA多线程实现的三种方法
JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没 ...
- 键盘鼠标共享效率工具----Synergy
在日常工作中,为了提高工作效率以及用户体验,会一个主机接多个显示器,像程序员一般都是使用两块显示器. 然而,有很多人是和我一样,自己有多台电脑,两个笔记本.公司一个台式机,如何在台机器之间来回切换工作 ...
- centos7下docker的安装教程
Centos7下docker安装教程以及踩过的那些坑 推荐在Centos下安装docker,在windows下安装docker可能会遇到很多的问题,而且docker官方推荐使用linux环境来使用do ...
- Second Large Rectangle【单调栈】
Second Large Rectangle 题目链接(点击) 题目描述 Given a N×MN \times MN×M binary matrix. Please output the size ...
- [每日一题2020.06.11]Codeforces Round #644 (Div. 3) H
A-E见 : 这里 题目 我觉得很有必要把H拿出来单独发( 其实是今天懒得写题了 ) problem H 一个从 1 到 $ 2^m - 1$ 的长度为m的连续二进制序列, 删去指定的n个数, 问剩余 ...
- C语言宏技巧 X宏
前言 本文介绍下X宏的使用 首先简单介绍下宏的几种用法 #define STRCAT(X,Y) X##Y #define _STR(X) #@X #define STR(X) #X #define L ...