发布于 2年前

Javascript检测开发者工具Devtools是否打开(Chrome/Firefox/IE)

首先要确定一点:是没有统一标准的方法来检测各个浏览器的devtools是否打开。所以只能针对不同的浏览器使用不同的方案,当然随着浏览器能的升级,有可能目前的方案也是会不适用的。

这里列出目前各个浏览器可用的方案。

方案一

console.log隐式调用元素的id

function isDevToolsOpened() {
 var opened = false;
  var element = document.createElement('any');
    element.__defineGetter__('id', function() {
    opened = true;
  });
 console.log(element);
 console.clear && console.clear();
 return opened || false;
}

兼容浏览器:Chrome,IE11

方案二

console.log()隐式调用RegExp的toString()

function isDevToolsOpened() {
  const devTools = /./;
  devTools.toString = function() {
    this.opened = true;
  }
  console.log(devTools);
  console.clear && console.clear();
  return devTools.opened || false;
}

兼容浏览器:Firefox,IE11

各浏览器测试版本:

  • Chrome: 64.0.3282.186(正式版本) (64 位)
  • Firefox:58.0.2 (64 位)
  • IE:11
©2020 edoou.com   京ICP备16001874号-3