以前,我曾提过一个问题, 网站如何检测到是否开启开发者工具?html
问题很火,是5月份问题top1, 后面管理员给我删除掉了...chrome
在此, 把这问题及解决方法记录下来.工具
监听键盘事件F12之类的方法, 不记录, 由于刚开始你们都是这么玩的。网站
chrome72如下code
var im = new Image(); Object.defineProperty(im, 'id', { get: function() { window.location.href = "http://106.53.103.200:8082/error.html" blast(); } }); console.log(im); //谷歌最新版失效
原理就是chrome在打开控制台的时候会读取页面上全部的id元素.htm
let num = 0; //谷歌最新版有效 var devtools = new Date(); devtools.toString = function() { num++; if (num > 1) { window.location.href = "http://106.53.103.200:8082/error.html" blast(); } } console.log('', devtools);
只有打开控制台,才会执行console打印方法, 由此控制。事件
以上两个方法,堪称无解,任何人都打不开控制台, 两个方法都是利用了数据劫持,或者重写一些核心方法而达到的,值得思考。开发