禁用在网站上复制
Disable Copying on a website
我知道挫败世界上最先进的思想是不可能的,但我想在我的网站上设置最轻微的障碍,防止我的学生从中复制文本并将其作为答案发布。(如果他们手工打字,那没关系(。
我只是非常害怕JavaScript,因为跨浏览器不一致。
既然我已经加载了jQuery,并且尽可能喜欢使用jQuery,我该如何:
- 禁用Ctrl+c
- 禁用菜单编辑复制
创建一个能做到这一点的函数是多么令人生畏,你应该以清除剪贴板为目标,这样即使用户按Ctrl+C,也不会将任何内容复制到剪贴板中,像这样的简单函数也能做到:
<script language="javascript">
function clearData(){
window.clipboardData.setData('text','')
}
function cldata(){
if(clipboardData){
clipboardData.clearData();
}
}
setInterval("cldata();", 1000);
</script>
<body ondragstart="return false;" onselectstart="return false;" oncontextmenu="return false;" onload="clearData();" onblur="clearData();">
尽管这仍然可以被击败。。。。
只需在关闭前添加以下代码<头部>您的网页标签:
<script>
function killCopy(e){
return false;
}
function reEnable(){
return true;
}
document.onselectstart=new Function ("return false");
if (window.sidebar){
document.onmousedown=killCopy;
document.onclick=reEnable;
}
</script>
我建议您使用:
<div oncopy="return false;">Here you have protected text</div>
可以在此处找到对此方法的支持:http://help.dottoro.com/ljwexqxl.php
它很简单,在我看来对普通用户来说已经足够了。老实说,没有任何选项可以完全防止复制文本。例如,人们总是可以使用Chrome开发工具,甚至可以从那里复制动态加载的文本。
为了获得更有效的保护,您应该将oncopy
放在<body>
标记中,否则可以通过从外部<div>
开始选择来复制文本。
如果您在特定的div中有文本,您可以在这些div之上放置一个透明的div。其次,您可以使所有受保护的文本都是动态的,并将其从javascript注入div,其中is将以编码形式存在——这将击败"视图源代码"。
<script type="text/javascript" language="javascript">
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
</script>
<script type="text/JavaScript">
function killCopy(e){ return false }
function reEnable(){ return true }
document.onselectstart=new Function ("return false");
if (window.sidebar)
{ document.onmousedown=killCopy;
document.onclick=reEnable; }
</script>
//通过使用以上代码,您的右键单击将被禁用,并且没有人可以复制您的页面内容
一个简单有效的解决方案-绑定到"复制"事件并阻止它。您还可以设置将复制(稍后由用户粘贴(的文本。
document.addEventListener('copy', function (e){
e.preventDefault();
e.clipboardData.setData("text/plain", "Do not copy this site's content!");
})
使用jQuery可以很容易地在网页上禁用文本、复制、右键单击。下面是可以轻松完成此任务的简单jQuery代码片段:
<script type="text/javascript">
// Disable right click on web page
$("html").on("contextmenu",function(e){
return false;
});
// Disable cut, copy and paste on web page
$('html').bind('cut copy paste', function (e) {
e.preventDefault();
});
</script>
来源:禁用右键点击,复制,使用jQuery剪切网页
要实现这一点,您需要在网页上阻止鼠标点击和上下文菜单点击。
这是一个示例代码:
<script language="JavaScript1.2">
var msgpopup="COPYING CONTENT IS PROHIBITED";
function handle(){
if(toShowMessage== "1") alert(message);
if(closeSelf== "1") self.close();
return false;
}
function mouseDown() {
if (event.button == "2" || event.button == "3"){handle();}
}
function mouseUp(e) {
//if (document.layers || (document.getElementById && !document.all)){
if (e.which == "2" || e.which == "3"){ handle();}
//}
}
document.onmousedown=mouseDown;
document.onmouseup=mouseUp;
document.oncontextmenu=new Function("alert(msgpopup);return false")
</script>
您可以将文本放在一个属性为只读的输入标记中,并防止用户使用JS进行复制。所以,用户甚至无法从开发人员菜单中复制它。
- 使用Clipboard.js复制span文本
- ZeroClipboard-在复制之前添加到值
- 正在从这些网站复制基本版本
- 禁用在我的magento网站前端复制描述
- 复制网站的最佳方法
- 如何禁止复制浏览我的网站的图像
- 需要有关使用 ASP.Net 或 JavaScript 将图像复制到网站剪贴板的帮助
- 复制/粘贴第三方网站的Lightbox脚本
- 从网站复制部分后的Javascript剪贴板操作
- 如何使用Twitter Bootstrap在Twitter网站上复制Follow/Unfollow悬停动作?
- 禁用在网站上复制
- 如何从其他网站复制选定的文本到从我的网站打开的窗口
- Javascript网站搜索在CD-ROM网站没有复制和粘贴
- 制作多语言网站、复制粘贴页面的最佳解决方案是什么?脚本
- 从网站复制文本,附加链接与文本复制
- 将网站的特定数据复制到excel中
- ngTable不起作用,简单的例子-从官方网站复制
- 将网站复制到本地服务器后,“购买”、“一键购买”按钮不起作用
- 复制网站的编程计算
- 我如何从网站复制文本并在我自己的HTML文件中使用它