在网上一搜可以看到很多类似的代码,加入网页body部分就可以。
例如下面这段代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
//复制内容自动添加版权信息
document.body.oncopy = function (){
setTimeout(function (){
var text = clipboardData.getData("text");
if (text)
{
text = text + "\r\n原文出自【grycheng前端博客】,转载请保留原文链接:"+location.href;
clipboardData.setData("text", text);
}
},
100
)
}

这段代码就可以实现,别忘了要写在js文件中或者直接写在页面中用<script ="text/javascript"> 代码 </script>包含进去。
加上以上代码后,别人在你网站的任何一个页面,复制任何一个文字的东西,粘贴时都会自动带上版权信息。
但这个代码的不足之处是:在IE6上测试通过,而在Firefox、Opera浏览器上没有效果。

为了解决这个问题,请教了很多高手,也在网上查了很多资料,终于解决了,在这里想说一句,度娘真的很强大。

以下贴出兼容代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//复制内容自动添加版权信息 
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
if( window.ActiveXObject )
{
document.body.oncopy=function()
{
event.returnValue = false;
var t=document.selection.createRange().text;
var s="\r\n原文出自[grycheng前端博客] 转载请保留原文链接:"+location.href;
clipboardData.setData('Text',t+'\r\n'+s);
}
}
else
{
function addLink()
{
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var pagelink = " 原文出自[grycheng前端博客] 转载请保留原文链接:"+document.location.href;

var copytext = selection + pagelink;
var newdiv = document.createElement('div');
newdiv.style.position='absolute';
newdiv.style.left='-99999px';
body_element.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout
(
function()
{
body_element.removeChild(newdiv);
},0
);
}
document.oncopy = addLink;
}

这个代码经测试,可以兼容,可能还有不足的地方,如有发现,可以在下方留言,共同探讨、改进。
最好说一点,注意编码问题,如发现复制的内容添加的版权信息乱码,可以自行检查编码问题。