使用js代码完成页面文本防复制功能

Do not go gentle into that good night

防止文本复制是很多小说或者资料网站中常用的功能,虽然我工作中没有用到,不过因为朋友拜托所以稍微研究了一下,文中代码均为转载,来源已经找不到了请谅解;

首先需要说明的是,op主只在jsp页面上进行过测试,由于学的太早所以记得不是很清楚;可能html页面上效果是相同的,不过没有做进一步测试,有需要的朋友可以自行测试一下;

关于浏览器的版本如下,各个浏览器能否实现的情况会在功能后面以浏览器首字母标识;
测试浏览器:
火狐:41.0.2
Chrome:41.0.2224.3
IE:11.0.9600.18053


小知识:如何查看火狐浏览器版本;
说明:因为一搜发现什么百度经验上面都是很旧的版本查看方式了,自己找了一会儿才找到,特此记录;
在这里:

输入图片说明


代码片段1:

功能:
- 禁用鼠标左键; C I
- 禁用鼠标右键; F C I
- 禁用鼠标点击选择文本;C I

<script>
    document.oncontextmenu = function() {
      return false;
    }
    document.onkeydown = function() {
      if (window.event.ctrlKey && window.event.keyCode == 67) {
        return false;
      }
      return false;
    }
    document.body.oncopy = function() {
      return false;
    }
    document.onselectstart = function() {
      return false;
    }

      document.onselectstart=function(){return false};
      document.style.MozUserSelect="none";
      document.onmousedown=function(){return false};
      document.style.cursor = "default"; 
  </script>

代码片段2:

功能:
- 禁用鼠标左键; F I
- 禁用鼠标右键; F I
- 禁用鼠标点击选择文本;F I

<head>

<script type="text/javascript">
    function disableSelection(target) {
        if (typeof target.onselectstart != "undefined") //IE route
            target.onselectstart = function() {
                return false
            }
        else if (typeof target.style.MozUserSelect != "undefined") //Firefox route
            target.style.MozUserSelect = "none"
        else
            //All other route (ie: Opera)
            target.onmousedown = function() {
                return false
            }
        target.style.cursor = "default"
    }
</script>
</head>
<body>

    <div id="test">
        这里填写文本内容,但需要自己设定html格式;

    </div>
    <script type="text/javascript">
        var somediv = document.getElementById("test")
        disableSelection(somediv) //disable text selection within DIV with id="mydiv"
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值