<script> setInterval(function() { const startTime = performance.now(); // 设置断点 debugger; const endTime = performance.now(); // 设置一个阈值,例如 100 毫秒 if (endTime - startTime > 100) { window.close(); } }, 100); </script>
这段 JavaScript 代码的目的是检测代码执行过程中是否被人为地中断(例如,通过开发者工具设置断点)。如果检测到执行时间超过了设定的阈值(例如 100 毫秒),它将关闭当前窗口。
具体实现如下:
setInterval
定时器:
每隔 100 毫秒执行一次回调函数。
性能测试:
在回调函数内部,通过 performance.now()
获取当前时间戳,分别作为 startTime
和 endTime
。
debugger
语句:
debugger
语句会在代码执行时触发调试器(如果存在),这可以用来检查代码是否被中断。
时间阈值检测:
如果 endTime
减去 startTime
的时间差超过了 100 毫秒(表示代码执行被中断了),则调用 window.close()
关闭当前窗口。
不过,需要注意的是,现代浏览器可能会对 window.close()
的调用进行限制,特别是在那些不是由脚本直接打开的窗口中。换句话说,如果当前页面不是通过 window.open()
打开的,调用 window.close()
可能不会生效。