脚下时光博客

常用、分享、学习

  • 博主:键盘上游荡
  • QQ:点击这里给我发消息
  • 微信:xia_bq
  • 业务:建站,二开,运维
AD
【腾讯云】云产品限时秒杀,爆款2核4G云服务器首年74元
文章目录

JavaScript检测代码执行过程中是否被人为地中断,将关闭当前窗口。

xiabq 2024-07-14 18:58:32 点滴记忆 0
<script>
    setInterval(function() {
        const startTime = performance.now();
        // 设置断点
        debugger;
        const endTime = performance.now();
        // 设置一个阈值,例如 100 毫秒
        if (endTime - startTime > 100) {
            window.close();
        }
    }, 100);
</script>

这段 JavaScript 代码的目的是检测代码执行过程中是否被人为地中断(例如,通过开发者工具设置断点)。如果检测到执行时间超过了设定的阈值(例如 100 毫秒),它将关闭当前窗口。

具体实现如下:

  1. setInterval 定时器

    • 每隔 100 毫秒执行一次回调函数。

  2. 性能测试

    • 在回调函数内部,通过 performance.now() 获取当前时间戳,分别作为 startTime 和 endTime

  3. debugger 语句

    • debugger 语句会在代码执行时触发调试器(如果存在),这可以用来检查代码是否被中断。

  4. 时间阈值检测

    • 如果 endTime 减去 startTime 的时间差超过了 100 毫秒(表示代码执行被中断了),则调用 window.close() 关闭当前窗口。

不过,需要注意的是,现代浏览器可能会对 window.close() 的调用进行限制,特别是在那些不是由脚本直接打开的窗口中。换句话说,如果当前页面不是通过 window.open() 打开的,调用 window.close() 可能不会生效。


  • 分享: