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

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;

时间: 2024-11-14 06:23:14

JavaScript防止网页被拷贝程序代码——SHOPXX(shop++)的相关文章

html dom与javascript的关系 -我们用JavaScript对网页(HTML)进行的所有操作都是通过DOM进行的

一,什么是DOM (参考源http://www.cnblogs.com/chaogex/p/3959723.html) DOM是什么 DOM全称为The Document Object Model,应该理解为是一个规范,定义了HTML和XML文档的逻辑结构和文档操作的编程接口. 文档逻辑结构 DOM实际上是以面向对象方式描述的对象模型,它将文档建模为一个个对象,以树状的结构组织(本文称之为"文档树",树中的对象称为"节点").每个文档包含1个document节点,0

利用Google Chrome开发插件,在网页中植入js代码

Google Chrome是一个很强大的浏览器,提供了各种各样的插件,大大提升了使用了的效率,比如vimium.honx等. Google在提供这些插件的同时还允许用户开发自己的插件. 最近在写js的脚本采集程序,需要测试在网页中的运行情况,因此可以利用Chrome插件进行测试. 1.首先第一步是新建一个文件夹,并新建一个manifest.json文件,内容如下 { "manifest_version": 2, "name": "Js implants&q

如何:在 DHTML 代码和客户端应用程序代码之间实现双向通信

https://msdn.microsoft.com/zh-cn/library/a0746166 可以使用 WebBrowser 控件向 Windows 窗体客户端应用程序添加现有的动态 HTML (DHTML) Web 应用程序代码. 在投入大量的开发时间创建基于 DHTML 的控件,并希望利用丰富的 Windows 窗体用户界面功能而无需重写现有的代码时,该控件十分有用. 使用 WebBrowser 控件,可以通过 ObjectForScripting 和 Document 属性在客户端应

那些出现在电影中的程序代码

高科技无关的电影也偶尔会出现一些跟计算机相关的镜头.文本搜罗的是在各种电影中出现过的代码,它们有的是黑客脚本,有的是绝密文件,有的就是为了摆酷,文中对这些代码都有截屏,你是否能看出它们是什么语言? 一.<钢铁侠>,c语言 最近我重新看了一遍<钢铁侠>,发现了一些有趣的事情.在钢铁侠的人工心脏第一次"初始化启动"期间,在那个"恐怖分子"的洞穴里,一些长长短短的C语言代码出现在那个伪造的笔记本电脑屏幕上. 屏幕上的这些代码,尽管从语法上看是少了一

javascript在网页中使用以及注意事项

一.<script>标签的解析: <script>xxx</script>这组标签,是用于在 html 页面中插入 js 的主要方法.它主要有以下几个属性: 1.charset:可选.表示通过 src 属性指定的字符集.被大多数浏览器忽略,很少有人用. 2.defer:可选.表示脚本可以延迟到文档完全被解析和显示之后再执行.大多数浏览器不支持,很少用.可以将JS代码放在html内容的后面,这样可实现延时加载 3.language:已废弃.原来用于代码使用的脚本语言.被大

每周一书-编写高质量代码:改善C程序代码的125个建议

首先说明,本周活动有效时间为2016年8月28日到2016年9月4日.本周为大家送出的书是由机械工业出版社出版,马伟编著的<编写高质量代码:改善C程序代码的125个建议>. 编辑推荐 10余年开发经验的资深C语言专家全面从C语法和C11标准两大方面深入探讨编写高质量C代码的技巧.禁忌和实践 C语言因为既具有高级语言特性,又具有汇编语言特性,所以它是近二十几年来使用较为广泛.生命力较强的编程语言.无论是操作系统.嵌入式系统.普通应用软件,还是移动智能设备开发,它都能够很好地胜任,是公认的强大的语

将JavaScript 插入网页的方法

将JavaScript 插入网页的方法 使用Javascript代码. 插入JavaScript 与在网页中插入CSS的方式相似.使用下面的代码可以在网页中插入JavaScript: ... 其中的...就是代码的内容.JavaScript的插入位置不同,效果也会有所不同,还可以像CSS一样,将JavaScript保存成一个外部文件,这些内容会在下一节讨论. 用JavaScript在网页中输出内容 JavaScript使用document.write来输出内容.例如  document.writ

ASP.NET 网页中的嵌入式代码块

将代码添加到 ASP.NET 网页中的默认模型要么创建一个代码隐藏类文件(代码隐藏页),要么将页的代码写到具有 runat="server" 特性的 script 块中(单文件页). 编写的代码通常会与页上的控件进行交互. 例如,通过从代码中设置控件的 Text(或其他)属性,可以在页上显示信息. 另一种可能是使用嵌入式代码块将代码直接嵌入到页中. 嵌入式代码块 嵌入式代码块是在呈现页面的过程中执行的服务器代码. 块中的代码可以执行编程语句,并调用当前页类中的函数. 下面的代码示例演示

创建ArcGIS API for JavaScript的第一个示例程序

原文:创建ArcGIS API for JavaScript的第一个示例程序 在上一篇博客中已经介绍了如何搭建ArcGIS API for JavaScript开发环境,如果您还没有搭建好开发环境的话,参考博客:http://blog.csdn.net/zdw_wym/article/details/48678913. 如果开发环境搭建好了的话,那么今天我们继续来搭建我们的第一个ArcGIS API for JavaScript应用程序. 下面首先将代码贴出来,复制到VS2012中新建的html