• 如何在html中禁止文字的复制


    如何在html中禁止文字的复制

    在写页面时,会遇到需要禁止用户复制网页里的某些内容的情况,例如:小说网站等,这时我们就需要通过一些方法来控制,才能达到禁止复制这个目的。

    1.禁止选中和禁止右键

    在<body>标签中添加以下代码:

    οncοntextmenu='return false'    禁止右键
    οndragstart='return false'    禁止拖动
    onselectstart ='return false'    禁止选中
    οnselect='document.selection.empty()'    禁止选中
    οncοpy='document.selection.empty()'    禁止复制
    onbeforecopy='return false'    禁止复制
    οnmοuseup='document.selection.empty()'
     

    示例代码如下:

    <body leftmargin=0 topmargin=0 oncontextmenu='return false' ondragstart='return false' onselectstart ='return false' onselect='document.selection.empty()' oncopy='document.selection.empty()' onbeforecopy='return false' onmouseup='document.selection.empty()'></body>

    2.禁止网页另存为:

    在<body>后面加入以下代码: 

    <body></body>
    <noscript>
        <iframe src=”*.htm”></iframe>
    </noscript>

    此时你会发现在电脑端已经无法选择复制,但是在移动端却还能选中复制,那么就需要再添加如下css代码来实现移动端也禁止选中文字。

    3.css代码来实现禁止选中文字

    *{
         moz-user-select: -moz-none;
         -moz-user-select: none;
         -o-user-select:none;
         -khtml-user-select:none;
         -webkit-user-select:none;
         -ms-user-select:none;
         user-select:none;
    }

    此时,到这一步,正常的选择和复制都已经被禁用了,但是懂行的人还可用浏览器的查看源码和调试工具来直接从代码中复制内容。

    4.禁用F12按键

    //禁用F12
    window.onkeydown = window.onkeyup = window.onkeypress = function (event) {
         // 判断是否按下F12,F12键码为123
         if (event.keyCode == 123) {
         event.preventDefault(); // 阻止默认事件行为
         window.event.returnValue = false;
         }
    }

    5.禁用调试工具

    var threshold = 160; // 打开控制台的宽或高阈值
    // 每秒检查一次
    var check = setInterval(function() {
         if (window.outerWidth - window.innerWidth > threshold ||
             window.outerHeight - window.innerHeight > threshold) {
             // 如果打开控制台,则刷新页面
             window.location.reload();
         }
    }, 1000);


    到这一步,已经基本限制了大部分的复制功能,但是对于懂行的来说还是不能完全限制,需要完全禁止还需要探讨更多方法来实现!!!!


  • 相关阅读:
    ubuntu高版本环境变量问题
    linux下可以和qq截屏比拟的工具hotshots
    如何以非 root 用户将应用绑定到 80 端口-ssh 篇
    mvn profile 深层次目录打参数核心配置
    java 判断字符串编码
    springmvc 传递和接收数组参数
    系统分层 manager层意义
    mysql insert中文乱码无法插入ERROR 1366 (HY000): Incorrect string value
    Apache Lens —— 统计数据分析查询接口
    云平台需要开发的底层功能
  • 原文地址:https://www.cnblogs.com/meijifu/p/12434239.html
Copyright © 2020-2023  润新知