Javascript 如何检测浏览器检查器窗口是否打开?

Javascript 如何检测浏览器检查器窗口是否打开?,javascript,internet-explorer,google-chrome,firefox,Javascript,Internet Explorer,Google Chrome,Firefox,是否可以检测浏览器的检查器窗口是否打开 我们试图通过比较window.outerHeight和window.innerHeight来检测它,但当inspector窗口未连接到浏览器(是浮动的)时,这不起作用 谢谢, Khachatur我正在寻找一种更清晰的方法来实现这一点,但这里有一种我目前正在使用的黑客方法: 通常,两次新的Date()调用之间的时间间隔小于100ms。所以,若你们把调试器放在它们之间,用户至少会在那个里花费超过100毫秒的时间,我们就知道他们打开了控制台 下面是一个简单的实现

是否可以检测浏览器的检查器窗口是否打开

我们试图通过比较window.outerHeight和window.innerHeight来检测它,但当inspector窗口未连接到浏览器(是浮动的)时,这不起作用

谢谢,
Khachatur

我正在寻找一种更清晰的方法来实现这一点,但这里有一种我目前正在使用的黑客方法:

通常,两次新的Date()调用之间的时间间隔小于100ms。所以,若你们把调试器放在它们之间,用户至少会在那个里花费超过100毫秒的时间,我们就知道他们打开了控制台

下面是一个简单的实现:

function isConsoleOpen() {
  var startTime = new Date();
  debugger;
  var endTime = new Date();

  return endTime - startTime > 100;
}

$(function() {
  $(window).resize(function() {
    if(isConsoleOpen()) {
        // do something
    }
  });
});

你能不能把检查员从窗户上拆下来?你为什么要知道?如果要在IE8中允许console语句,只需执行
window.console&&console.log(“任意”)
每次让开发人员将&debug=1添加到URL中,并在您发送的任何人都可以打开检查器的位置进行测试,而不仅仅是您的开发人员@mplungjan的建议是解决您问题的更好办法。@Khachatur在回复您对已删除评论的评论时说:是的,您可以使用扩展API检测devtools是否打开,并通知页面。
function isConsoleOpen() {
  var startTime = new Date();
  debugger;
  var endTime = new Date();

  return endTime - startTime > 100;
}

$(function() {
  $(window).resize(function() {
    if(isConsoleOpen()) {
        // do something
    }
  });
});