QQ爹の博客 QQ爹の博客

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

in Typecho,实用技巧 文章转载请注明来源!

什么鬼?

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

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

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:Jrotty
链接:https://www.qqdie.com/
来源:Jrotty's Blog

原理:

  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);
    }
}

已知问题:
iOS Safari 不兼容 clipboardData.setData() 方法,所以在 iOS Safari 上无效

针对typecho这么写比较好

<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>'
            + '作者:<?php $this->author() ?><br>'
            + '链接:' + window.location.href + '<br>'
            + '来源:<?php $this->options->siteUrl(); ?><br><br>'
            + window.getSelection().toString();
        var textData = ''
            + '著作权归作者所有。\n'
            + '商业转载请联系作者获得授权,非商业转载请注明出处。\n'
            + '作者:<?php $this->author() ?>\n'
            + '链接:' + window.location.href + '\n'
            + '来源:<?php $this->options->siteUrl(); ?>\n\n'
            + window.getSelection().toString();
 
        clipboardData.setData('text/html', htmlData);
        clipboardData.setData('text/plain',textData);
    }
}
</script>

文章部分内容转自https://www.anotherhome.net/2298

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

版权javascript
发表新评论
已有 7 条评论
  1. 默歌
    默歌Windows 10谷歌浏览器
    回复

    [生病]小白不知道加那!

    1. 近泽
      近泽Windows 10谷歌浏览器
      回复

      @默歌 typecho加载footer.php中即可

  2. 夏风轻顾
    夏风轻顾Windows 10谷歌浏览器
    回复

    F12大法好[阴险]

    1. 近泽
      近泽Windows 10谷歌浏览器
      回复

      @夏风轻顾 我知道!只是我觉得这样也浪费不了多少时间![可爱]

    2. 夏风轻顾
      夏风轻顾Windows 10谷歌浏览器
      回复

      @夏风轻顾 你其实可以直接问我要的(手动笑cry)

    3. 夏风轻顾
      夏风轻顾Windows 10谷歌浏览器
      回复

      @夏风轻顾 我知道,233333

    4. 近泽
      近泽Windows 10谷歌浏览器
      回复

      @夏风轻顾 [哈哈]前几天对你博客,我也用过

PREVIOUS NEXT
雷姆
拉姆
音乐加载中...
0:00