js实现复制内容自动添加版权信息

  场景:当我从网上复制了所需代码到编辑器粘贴时,总会有如下版权信息提示

  

   看到好几次后,在好奇心的驱使下开始搜寻答案。网上有好几种写法,最开始我找到了如下JS代码

        document.body.oncopy = function() {
                setTimeout(
                    function() {
                        var text = clipboardData.getData("text");
                        if(text) {
                            text = text + "\r\n本文来自: (www.jb51.net) 详细出处参考:" + location.href;
                            clipboardData.setData("text", text);
                        }
                    }, 100)
            }

  但这种方法经过测试,会报错,如下图

  

  

扫描二维码关注公众号,回复: 4363681 查看本文章

   后来终于被我找到下面的JS代码,亲测可用,附上截图和代码

  

function addLink() {
                var body_element = document.body;
                var selection;
                //var selection = window.getSelection();
                var blogName = '[ 何海宝的博客 ]'; // 此处修改成你自己网站的名称
                selection = window.getSelection() ? window.getSelection() : document.selection.createRange().text;
                if(window.clipboardData) { // Internet Explorer
                    var pagelink = "\r\n\r\n 原文出自" + blogName + " 转载请保留原文链接: " + document.location.href + "";
                    var copyText = selection + pagelink;
                    window.clipboardData.setData("Text", copyText);
                    return false;
                } else {
                    var pagelink = " 原文出自" + blogName + " 转载请保留原文链接: " + 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;

  注:网上有很多地方都引用了这段代码,但大多都没有标明出处,后来巧合之下发现下面的原文链接

  原文链接:http://www.hehaibao.com/js-auto-add-copyright/

 

  补充:上面代码有2个我看不懂的属性,有兴趣的小伙伴可以看看

     window.getSelection():表示用户选择的文本范围或光标的当前位置

     clipboardData对象:剪贴板数据对象

     

  

猜你喜欢

转载自www.cnblogs.com/tu-0718/p/9992320.html