如何使用 js 检测控制台被用户打开了
阅读原文时间:2023年07月08日阅读:1

如何使用 js 检测控制台被用户打开了

js

  1. 监听 F12 事件

  2. 监听键盘快捷键组合

Ctrl + Shift + I

Option + Command + I

  1. Object.toString()

如果控制台输出的是对象,则保留对象的引用,每次打开开发者工具的时候都会重新调用一下对象的 toString()方法将返回结果打印到控制台(console tab)上。

  1. 监听 window 的纵横比的变化

  2. debugger 断点

    "use strict";

    /**
    *

    // const log = console.log;

    function FBIWarning() {
    console.warn(控制台被打开了);
    console.error(控制台被打开了);
    }

    // ??? !function
    !function () {
    const id = setInterval(() => {
    const before = new Date().getTime();
    debugger;
    const after = new Date().getTime();
    if (Math.abs(after - before) > 100) {
    FBIWarning();
    clearInterval(id)
    }
    }, 1000);
    }();

  3. Proxy 拦截 log 执行

  4. 数据劫持

    "use strict";

    /**
    *

    // const log = console.log;

    let times = 1;

    var abc = document.createElement('div');

    Object.defineProperty(abc, id, {
    // 数据劫持
    get: function () {
    // console.log(控制台被打开了, x);
    console.warn(控制台被打开了, times);
    console.error(控制台被打开了, times);
    times++;
    },
    // others
    });

    console.log(abc);

禁用右键菜单

防止执行外包的 js, 关闭当前页面

重定向

禁用复制

https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent

快捷键

https://www.cnblogs.com/xgqfrms/tag/快捷键/

    let isCtrl = false;
    document.addEventListener("keyup", () => {
        //
    });
    document.addEventListener("keyup", function(e) {
        let key = e.which || e.keyCode;
        // console.log(`keyup & e =`, e);
        // console.log(`e.keyCode =`, e.keyCode);
        // console.log(`e.which =`, e.keyCode);
        // console.log(`key =`, key);
        if(e.which === 17) {
            // init
            isCtrl = false;
        }
    });
    document.addEventListener("keydown", function(e) {
        let key = e.which || e.keyCode;
        console.log(`keydown & e =`, e);
        // console.log(`e.keyCode =`, e.keyCode);
        // console.log(`e.which =`, e.keyCode);
        // console.log(`key =`, key);
        if(e.which === 17) {
            isCtrl = true;
        }
        if(e.which === 83 && isCtrl === true) {
            console.log(`you pressed Ctrl + S`);
        }
        if(e.which === 68 && isCtrl === true) {
            console.log(`you pressed Ctrl + D`);
        }
        if(e.which === 70 && isCtrl === true) {
            console.log(`you pressed Ctrl + F`);
        }
        if(e.which === 88 && isCtrl === true) {
            console.log(`you pressed Ctrl + X`);
        }
    });
    // document.onkeyup = function(e) {
    //     if(e.which === 17) {
    //         isCtrl = false;
    //     }
    // }
    // document.onkeydown = function(e) {
    //     if(e.which === 17) {
    //         isCtrl = true;
    //     }
    //     if(e.which === 83 && isCtrl === true) {
    //         // alert('Keyboard shortcuts are cool!');
    //         return false;
    //     }
    // }


xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!