仿知乎复制文本自带版权声明

部分转载自Jrotty 的博客

什么鬼?

版权狗退散,妈妈再也不用担心我被侵权了(其实只防君子不防小人)。

类似知乎,在网站复制长度大于 42 的文本时自动加上这样的版权声明:

著作权归作者所有。

商业转载请联系作者获得授权,非商业转载请注明出处。

作者:Leonn

链接:http://catonisland.cn/

来源:Leonn的博客

原理

1. 监听 copy 事件

2. 使用 window.getSelection() 获取选中的文本

3. 使用 clipboardData.setData 操作剪贴板的内容



JS代码

document.body.addEventListener('copy', function (e) {
    if (window.getSelection().toString() && window.getSelection().toString().length > 42) {
        setClipboardText(e);
        alert('商业转载请联系作者获得授权,非商业转载请注明出处,谢谢合作。');
    }
});
 function setClipboardText(event) {
    var clipboardData = event.clipboardData || window.clipboardData;
    if (clipboardData) {
        event.preventDefault();
 
        var htmlData = ''+'著作权归作者所有。<br>'
                         +'商业转载请联系作者获得授权,非商业转载请注明出处。<br>'
                         +'作者:DIYgod<br>'
                         + '链接:' + window.location.href + '<br>'
                         + '来源:Anotherhome<br><br>'+ window.getSelection().toString();
        var textData = ''+ '著作权归作者所有。\n'
                         + '商业转载请联系作者获得授权,非商业转载请注明出处。\n'
                         + '作者:DIYgod\n'            
                         + '链接:' + window.location.href + '\n'            
                         + '来源:Anotherhome\n\n'+ window.getSelection().toString();
 
        clipboardData.setData('text/html', htmlData);
        clipboardData.setData('text/plain',textData);
    }
}

Zblog代码

<script>
document.body.addEventListener('copy', function (e) {
    if (window.getSelection().toString() && window.getSelection().toString().length > 42) {
        setClipboardText(e);
        alert('商业转载请联系作者获得授权,非商业转载请注明出处,谢谢合作。');
    }
}); 
function setClipboardText(event) {
    var clipboardData = event.clipboardData || window.clipboardData;
    if (clipboardData) {
        event.preventDefault();
        var htmlData = ''
            + '著作权归作者所有。<br>'
            + '商业转载请联系作者获得授权,非商业转载请注明出处。<br>'
            + '作者:<a href="{$article.Author.Url}" target="_blank">{$article.Author.Name}</a><br>'
            + '链接:' + window.location.href + '<br>'
            + '来源:{$host}<br><br>'
            + window.getSelection().toString();
        var textData = ''
            + '著作权归作者所有。\n'
            + '商业转载请联系作者获得授权,非商业转载请注明出处。\n'
            + '作者:{$article.Author.Name}\n'
            + '链接:' + window.location.href + '\n'
            + '来源:{$host}\n\n'
            + window.getSelection().toString();
 
        clipboardData.setData('text/html', htmlData);
        clipboardData.setData('text/plain',textData);
    }
}
</script>

本文标题:仿知乎复制文本自带版权声明

本文链接:http://catonisland.cn/post/234.html

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章