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>

“通過監聽頁面元素變化來重新加載頁面”的代碼會導致你的網站崩潰,所以根據實際情況,謹慎使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM