如何禁用在浏览器打开控制台?

5 min read

目前没有一种可以完全禁用浏览器控制台的方法。但是,你可以通过使用JavaScript来防止大多数用户打开浏览器控制台。下面是一个简单的示例代码,它可以检测到控制台是否已经打开,如果打开则自动关闭控制台。

//禁止在浏览器控制台输入命令
var disableConsole = function() {
    var oldLogs = [];
    var console = window.console;
    if (!console) return;
    function noop() {};
    for (var prop in console) {
        if (typeof console[prop] === "function") {
            oldLogs[prop] = console[prop];
            console[prop] = noop;
        }
    }
    window.addEventListener("keydown", function(e) {
        if (e.keyCode == 123 || e.keyCode == 74) {
            e.preventDefault();
        }
    }, false);
    window.addEventListener("mousedown", function(e) {
        if (e.button == 2) {
            e.preventDefault();
        }
        return false;
    }, false);
}
disableConsole();

注:这个方法不是一种完全有效的方法,因为高级用户仍然可以禁用 Javascript 或者使用其他方法来打开控制台。