当前位置:首页 > 前端 > javascript > js实现简单的内容防复制

js实现简单的内容防复制

DChen3年前 (2021-03-10)javascript1.71 K0

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>


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

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

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

<!-- 复制内容弹窗版权提醒 -->
<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 />链接:http://www.yunziyuan.com.cn/u/tiantian_<br />'
                            + '来源:segmentfault<br /><br />' 
                            + node.innerHTML 
                            + '</div>';
            var textData = '著作权归作者所有。\n' 
                            + '商业转载请联系作者获得授权,非商业转载请注明出处。\n'
                            + '作者:tiantian\n链接:http://www.yunziyuan.com.cn/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>


取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

版权声明:本文由“憨小猪”发布,如需转载请注明出处。

本文链接:https://www.phper.red/post/8.html

标签: javascriptjsjq
返回列表

没有更早的文章了...

下一篇:js实现每天首次进入弹窗

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。