zoukankan      html  css  js  c++  java
  • JavaScript实现禁止打开控制台

    通过 JavaScript 实现禁止打开控制台(期中包括:右键审查元素、工具栏、F12、Shift+Ctrl+I)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style type="text/css">
            /*禁止选中文字*/
            body {
                -moz-user-select: none;
                /*火狐*/
                -webkit-user-select: none;
                /*webkit浏览器*/
                -ms-user-select: none;
                /*IE10*/
                -khtml-user-select: none;
                /*早期浏览器*/
                user-select: none;
            }
        </style>
    </head>
    <body>
        <script type='text/javascript'>
            //禁用右键(防止右键查看源代码) 
            window.oncontextmenu = function () { return false; }
            //禁止任何键盘敲击事件(防止F12和shift+ctrl+i调起开发者工具) 
            window.onkeydown = window.onkeyup = window.onkeypress = function () {
                window.event.returnValue = false;
                return false;
            }
            //如果用户在工具栏调起开发者工具,那么判断浏览器的可视高度和可视宽度是否有改变,如有改变则关闭本页面 
            var h = window.innerHeight, w = window.innerWidth;
            window.onresize = function () {
                if (h != window.innerHeight || w != window.innerWidth) {
                    window.close();
                    window.location = "about:blank";
                }
            }
            /*好吧,你的开发者工具是单独的窗口显示,不会改变原来网页的高度和宽度, 但是你只要修改页面元素我就重新加载一次数据,让你无法修改页面元素(不支持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);
            } 
        </script>
    </body>
    </html>
    

    “通过监听页面元素变化来重新加载页面”的代码会导致你的网站崩溃,所以根据实际情况,谨慎使用

    https://xiaodongxier.com
  • 相关阅读:
    [三]JavaIO之IO体系类整体设计思路 流的概念以及四大基础分类
    [二] JavaIO之File详解 以及FileSystem WinNTFileSystem简介
    [一]FileDescriptor文件描述符 标准输入输出错误 文件描述符
    [零] JavaIO入门简介 程序设计语言 为什么需要IO库
    装饰器模式 Decorator 结构型 设计模式 (十)
    适配器模式 adapter 结构型 设计模式(九)
    layui 鼠标悬停单元格显示全部
    mysql 日期总结
    区域块路由与全局路由兼容,双重路由
    JS-SDK相关参考
  • 原文地址:https://www.cnblogs.com/xiaodongxier/p/javascript-shi-xian-jin-zhi-da-kai-kong-zhi-tai.html
Copyright © 2011-2022 走看看