首页 > 技术文章 > 最简单的网站内容防复制
2020
11-13

最简单的网站内容防复制

  1. 首先通用的防复制办法,基本上所有网站都通用的代码。把代码加入头部或者底部模板文件中即可

<script>document.oncontextmenu=function(){return false}//屏蔽右键菜单document.onpaste=function(){return false}//屏蔽粘贴document.oncopy=function(){return false}//屏蔽复制document.oncut=function(){return false}//屏蔽剪切document.onselectstart=function(){return false}//屏蔽选择</script>

上面的代码包括了屏蔽右键菜单、屏蔽粘贴、屏蔽复制、屏蔽剪切、屏蔽选择。网站文章页面有了这些复制就困难很多了,只需要把代码放在对应的页面就行了。以上这种代码和日常所用的锁是一样的,只防君子,不防小人。

最简单的网站内容防复制,网站内容防复制.jpg,网站,自动,授权,第1张

二、文章想让人家复制,但是提醒版权方法

把下面代码加入网站头部或者底部模板文件中即可

<!-- 复制内容弹窗版权提醒 --><script type="text/javascript">
    document.body.oncopy=function(){alert("复制成功!撰文不易,转载请务必保留原文链接,谢谢合作!");}</script>

三、复制自动带版权代码:

 <script>
        function setClipboardText(event){ 
            event.preventDefault();//阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。
            var node = document.createElement('div');
            //对documentfragment不熟,不知道怎么获取里面的内容,用了一个比较笨的方式
            node.appendChild(window.getSelection().getRangeAt(0).cloneContents());
            //getRangeAt(0)返回对基于零的数字索引与传递参数匹配的选择对象中的范围的引用。对于连续选择,参数应为零。
            var htmlData = '<div>著作权归作者所有。<br />' 
                            + '商业转载请联系作者获得授权,非商业转载请注明出处。<br />'
                            + '作者:tiantian<br />链接:https://www.9nqp.com/u/tiantian_<br />'
                            + '来源:segmentfault<br /><br />' 
                            + node.innerHTML 
                            + '</div>';
            var textData = '著作权归作者所有。\n' 
                            + '商业转载请联系作者获得授权,非商业转载请注明出处。\n'
                            + '作者:tiantian\n链接:https://www.9nqp.com/u/tiantian_\n'
                            + '来源:segmentfault\n\n' 
                            + window.getSelection().getRangeAt(0);
            if(event.clipboardData){  
                event.clipboardData.setData("text/html", htmlData);
                //setData(剪贴板格式, 数据) 给剪贴板赋予指定格式的数据。返回 true 表示操作成功。 
                event.clipboardData.setData("text/plain",textData);
            }
            else if(window.clipboardData){ //window.clipboardData的作用是在页面上将需要的东西复制到剪贴板上,提供了对于预定义的剪贴板格式的访问,以便在编辑操作中使用。 
                return window.clipboardData.setData("text", textData);  
            }  
        };  
        var answer = document.getElementById("answer");
        answer.addEventListener('copy',function(e){
            setClipboardText(e);
        });
    </script>

[qgg_green]防复制代码请用 CTRL+C 快捷键完成复制[/qgg_green]