66.js禁止复制,右键,控制台

326 阅读1分钟

有个禁止复制的需求

禁止左键选中

   // 1.禁用左键选中
 
    document.addEventListener('selectstart', function (e) {
      return e.returnValue = false
    });


禁止右键

  <p>不好复制的文件</p>
  <script>
    // 2.禁用右键菜单
    document.addEventListener('contextmenu', function (e) {
      e.returnValue = false
    });

  </script>

禁止f12

    //3 禁用F12
    document.addEventListener('keydown', function (e) {
      if (e.key == 'F12') {
        e.preventDefault();
      }
    });


禁止其他方式调用控制台

    // 4通过其他方式打开控制台,关闭页面
    function resize () {
      var threshold = 200;
      var widthThreshold = window.outerWidth - window.innerWidth > threshold;
      var heightThreshold = window.outerHeight - window.innerHeight > threshold;
      if (widthThreshold || heightThreshold) {
        window.close();
        window.location = "about:blank";
      }
    }
    window.addEventListener('resize', resize);

 

独立窗口的控制台

   // 5.控制台是单独的窗口显示,不会改变原来网页的高度和宽度, 但是你只要修改页面元素我就重新加载一次数据,让你无法修改页面元素(不支持IE9以下浏览器)
    if (window.addEventListener) {
      window.addEventListener("DOMCharacterDataModified", function () { window.location.reload(); }, true);
      window.addEventListener("DOMAttributeNameChanged", function () { window.location.reload(); }, true);
      window.addEventListener("DOMCharacterDataModified", function () { window.location.reload(); }, true);
      window.addEventListener("DOMElementNameChanged", function () { window.location.reload(); }, true);
      window.addEventListener("DOMNodeInserted", function () { window.location.reload(); }, true);
      window.addEventListener("DOMNodeInsertedIntoDocument", function () { window.location.reload(); }, true);
      window.addEventListener("DOMNodeRemoved", function () { window.location.reload(); }, true);
      window.addEventListener("DOMNodeRemovedFromDocument", function () { window.location.reload(); }, true);
      window.addEventListener("DOMSubtreeModified", function () { window.location.reload(); }, true);
    }