MENU

版权狗退散 — 仿知乎复制文本自带版权声明

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

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

商业转载请联系作者获得授权,非商业转载请注明出处。
作者:不死鸟
链接:https://lai.yuweining.cn/archives/438/
来源:lai.yuweining.cn

原理:

  1. 监听copy事件
  2. 使用 window.getSelection() 获取选中的文本
  3. 使用 clipboardData.setData 操作剪贴板的内容
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>'
            + '作者:不死鸟<br>'
            + '链接:' + window.location.href + '<br>'
            + '来源:lai.yuweining.cn<br><br>'
            + window.getSelection().toString();
        var textData = ''
            + '著作权归作者所有。\n'
            + '商业转载请联系作者获得授权,非商业转载请注明出处。\n'
            + '作者:不死鸟\n'
            + '链接:' + window.location.href + '\n'
            + '来源:Alai.yuweining.cn\n\n'
            + window.getSelection().toString();
 
        clipboardData.setData('text/html', htmlData);
        clipboardData.setData('text/plain',textData);
    }
}

已知问题:

iOS Safari 不兼容 clipboardData.setData() 方法,所以在 iOS Safari 上无效

以上思路给予大家参考,本站未开启版权狗, 不死鸟大部分的资源来源网络,大家可以随意转载

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment