禁止用户打开浏览器控制台

2018-03-24 13:23:09
1389次阅读
0个评论

如何在JS文件中检测用户浏览器是否打开了调试面板(F12打开开发者工具)


Chrome和Firefox下测试可用,IE和Edge下无效。

(function () {
  var re = /x/;
  var i = 0;
  console.log(re);

  re.toString = function () {
    return '第 ' + (++i) + ' 次打开控制台';
  };
})();


以上的方法原理是这样的: 

控制台输出的内容如果是对象(包括正则表达式对象),则保留的是对象的引用,输出的会是对象的实时值,即对象内容被改变时,能够反映其变化(前提是重新开启控制台)。实际上是每次关闭再开启控制台的时候,重新调用对象的toString方法。

这里改写了re对象的toString方法,并用闭包保存计数器i,每次重新打开控制台toString方法就会被自动调用,并把计数器加1。另外这个方法是可以被破解的,只要在控制台右键调出相关菜单,点“Clear Console”,就全没了。


收藏00

登录 后评论。没有帐号? 注册 一个。