你可能也遇到过,自己辛辛苦苦写的文章,隔几天就出现在别的网站上,署名没了,出处也没了。其实有个办法,能让别人从你网页复制内容时,剪贴板里自动多出一条你的网站链接。听起来像黑科技,实际上就是一段JavaScript的事。
原理很简单。浏览器在用户执行复制操作时会触发copy事件,这个事件里有一个clipboardData对象,你可以往里塞新内容,然后覆盖掉默认的复制结果。也就是说,对方选中的是“昨天我写了一篇文章”,但粘贴出来可能是“昨天我写了一篇文章\n\n本文首发于你的域名,原文链接:……” 用好了的话,这比在文章末尾手动加版权声明可靠得多,因为很多人复制时会故意漏掉最后那些字,却防不住这段自动追加的尾巴。
我自己的博客上运行的是这段代码:
document.addEventListener(''copy'', function(e){
var selectedText = window.getSelection().toString();
if (selectedText.length > 30) {
var extra = ''\n\n本文首发于 '' + window.location.hostname + '',原文链接:'' + window.location.href;
e.clipboardData.setData(''text/plain'', selectedText + extra);
e.preventDefault();
}
});
你把它放到主题的footer区域,或者单独存一个js文件再引入,都能生效。这里有几个细节值得说一下。首先,我加了一个长度判断,只有复制超过三十个字时才触发,不然别人复制你一句短语也要带上链接,显得很别扭。数字可以自己改,二十、五十
