zoukankan      html  css  js  c++  java
  • js实现复制内容自动添加版权信息

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

      

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

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

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

      

      

       后来终于被我找到下面的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 = "
    
     原文出自" + 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对象:剪贴板数据对象

         

      

  • 相关阅读:
    编译原理
    C++的RTTI
    静态加载dll的问题
    COM编程中的接口查询QueryInterface的实现原理
    com学习笔记(2)基本的com接口QueryInterface的实现
    如何从DLL中生成LIB文件
    CMAP原理及其在MFC中的实现(MAP模板没有顺序遍历的功能)
    多态性vptrvtable
    技术网站
    垃圾事务
  • 原文地址:https://www.cnblogs.com/tu-0718/p/9992320.html
Copyright © 2011-2022 走看看