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