文档章节

JavaScript防止网页被拷贝程序代码——SHOPXX(shop++)

 逝去的过去
发布于 2015/09/15 16:31
字数 637
阅读 156
收藏 16

1、使右键和复制失效
方法1:
禁止鼠标右键+禁止选中文本代码很简单,只需要在head标签的javascript内加入以下两行代码即可。
在网页中加入以下代码:
代码如下    
<script language="Javascript"> 
document.oncontextmenu=new Function("event.returnValue=false"); 
document.onselectstart=new Function("event.returnValue=false"); 
</script>
使用了jQuery的页面中可以这么写:
document.oncontextmenu=function(e){return false;} 
$('body').bind("selectstart",function(){return false;});
方法2:
在<body>中加入以下代码:
代码如下    
<body oncontextmenu="return false" onselectstart="return false"> 
 
<body oncontextmenu="event.returnValue=false" onselectstart="event.returnValue=false">
实质上,方法2与方法1是一样的。
方法3: 
如果只限制复制,可以在<body>加入以下代码:
代码如下    
<body oncopy="alert('对不起,禁止复制!');return false;">
2、使菜单"文件"-"另存为"失效
如果只是禁止了右键和选择复制,别人还可以通过浏览器菜单中的"文件"-"另存为"拷贝文件。为了使拷贝失效,可以在
代码如下    
<body>与</body>之间加入以下代码: 
<noscript> 
<iframe src="*.htm"></iframe> 
</noscript> 
这样,用户在另存网页时,就会出现"无法保存Web页"的错误。
3、禁止复制
使用方法:在oncopy事件中return false
代码如下    
oncopy="return false;"
1、禁止复制网页内容
代码如下    
<body oncopy="return false;">
2、禁止复制元素内容
代码如下    
<input type="text" name="username" oncopy="return false;" />
二、禁止粘贴
使用方法:在onpaste事件中return false
onpaste="return false;"禁止将内容粘贴到元素中
代码如下    
<input type="password" name="pwd" onpaste="return false;" />
三、复制粘贴来源信息
为了防止拷贝党在转载时不注明来源信息,所以需要在其复制时,自动在复制的内容后添加版权声明(默认延迟:100毫秒)
需要使用到clipboardData对象:
getData("Text")方法:获得剪贴板的文本信息
setData("Text",val)方法:设置剪贴板的文本信息
setTimeout(code,delay)方法:超时执行指定的code代码
代码如下    
<html>
<head>
<title>Paste Source Information</title>
<script type="text/javascript">
    function copysource(){
        var source = clipboardData.getData("Text");
        source = source + "本文来自博www.111cn.net :" + window.location.href;
        clipboardData.setData("Text", source);
    }
</script>
</head>
<body oncopy="window.setTimeout('copysource()',100);">
</body>
</html>

注意:上面的代码在IE和Chrome下测试通过,但是在Firefox下鼠标右键不能用但依然可以选中文本,所以出于兼容性考虑,
需要在body的style中加入这么一个属性:
代码如下    复制代码
-moz-user-select:none;

本文转载自:http://bbs.shopxx.net/read-htm-tid-25685.html

粉丝 0
博文 7
码字总数 1179
作品 0
临海
私信 提问
[开发者简报第十六期] JavaScript异步演化史 | 谷歌系列性能指南教程 | Kotlin协程 | JavaScript解构

微信阅读 本专栏可以点击阅读 异步JavaScript的演化史:从回调到Promise再到Async/Await 本文以实际样例阐述了异步 JavaScript 的发展过程,介绍了每种实现方式的优势和不足,能够帮助读者掌...

developergang
08/26
5K
1
网页中最常用的JS代码(js禁止右键、禁止复制)

<body oncontextmenu=”return false”></body> <!– 禁用右键: –> <script> function stop(){ return false; } document.oncontextmenu=stop; </script> <body onselectstart=”return fa......

LorinLuo
2015/05/28
2.1K
0
企业级 JavaScript应用:机遇,威胁与解决方案

作者:Jscrambler 翻译:疯狂的技术宅 原文:blog.jscrambler.com/enterprise-… 未经允许严禁转载 如果你正在使用 JavaScript,那你应该熟悉它的历史。这个有着 24 年历史的编程语言在过去几...

前端先锋
07/04
0
0
为什么JavaScript是你应当学习的下一个(或第一个)编程语言

原文出处:dentedreality 译文出处:腊八粥 本文是翻译,版权归原作者所有 我已经被多次问到,如果我刚刚开始,我应当学习什么编程语言,答案一定是JavaScript,下面是为什么: 最简单的开发...

dentedreality
2014/12/02
0
0
仅用10天设计的JavaScript,凭什么成为程序员最受欢迎的编程语言?

原文链接:https://aiprocon.csdn.net/m/topic/ai_procon/ticket

AI科技大本营
08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2684亿!阿里CTO张建锋:不是任何一朵云都撑得住双11

“不是任何一朵云都能撑住这个流量。中国有两朵云,一朵是阿里云,一朵叫其他云。”11月11日晚,阿里巴巴集团CTO张建锋表示,“阿里云不一样,10年前我们从第一行代码写起,构建了中国唯一自...

阿里云官方博客
27分钟前
6
0
Spark自定义外部数据源

背景:有时候我们需要定义一个外部数据源,然后用spark sql的方式来处理。这样的好处有2点: (1)定义了外部数据源后,用起来很简洁,软件架构清晰,通过sql方式直接使用。 (2)容易分层分...

守望者之父
30分钟前
7
0
电磁兼容不应空论 越实践越知深浅

在电子行业中,电子工程师极为熟悉的就是EMC电磁兼容性测试的各项规范。其实大多工程师所了解的电磁兼容性一般来说就是:设备或系统在其电磁环境中能正常工作,且不对该环境中任何事物构成不...

demyar
31分钟前
5
0
16、SpringMVC拦截器

拦截定义 定义拦截器,实现HandlerInterceptor接口。接口中提供三个方法。 public class HandlerInterceptor1 implements HandlerInterceptor{ public boolean preHandle(HttpServletR......

快乐的瓶子
31分钟前
4
0
顺时针打印矩阵

public class Code_06_PrintMatrixSpiralOrder {public static void spiralOrderPrint(int[][] matrix) {int tR = 0; //左上角的行int tC = 0; //左上角的列int dR = ma......

Garphy
33分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部