实现右键,一键复制工能。以及防复制工能。

一键复制工能

  <div>
    <span id="copyMy" onmousedown="copyFn(event)" oncontextmenu="doNothing()">右键复制</span>
  </div>

<script>
  function doNothing() {  // 取消右键弹出的菜单
    window.event.returnValue = false;
    return false;
  }

  function copyFn(event) {
    var val = document.getElementById('copyMy');
    if (event.button === 2) { // 判断是否是鼠标右键
      window.getSelection().selectAllChildren(val);
      document.execCommand("Copy");
      alert("已复制好,可贴粘。");
    }
  }
</script>

防复制工能

防复制主要有三个方向可以考虑:

1. 取消文字选中

  • css实现
  body {
    height: 100vh;
    width: 100vw;
    -moz-user-select: none; /*火狐*/
    -webkit-user-select: none; /*webkit浏览器*/
    -ms-user-select: none; /*IE10*/
    -khtml-user-select: none; /*早期浏览器*/
    user-select: none;
  }
  • js实现
  document.body.onselect = document.body.onselectstart = document.body.ondrag = document.body.ondragstart = function () {
    return false;
  }

2. 取消右键弹窗

  document.body.oncontextmenu = function () {
    return false;
  }

3. 取消复制

  document.body.oncopy = document.body.onbeforecopy = function () {
    return false;
  }

总结:个人认为,禁止复制,主要使用:取消右键弹窗、取消复制,就可以了。(可以参考百度文库是如何做的)

posted @ 2020-07-13 12:00  真的想不出来  阅读(314)  评论(0编辑  收藏  举报