当前位置: 首页 > 面试题库 >

找出Chrome控制台是否打开

公良信然
2023-03-14
问题内容

我正在使用这个小脚本来查找Firebug是否打开:

if (window.console && window.console.firebug) {
    //is open
};

而且效果很好。现在,我正在搜索半小时,以找到一种方法来检测Google Chrome的内置Web开发人员控制台是否已打开,但找不到任何提示。

这个:

if (window.console && window.console.chrome) {
    //is open
};

不起作用。

编辑:

因此,似乎无法检测到Chrome控制台是否处于打开状态。但是有一个“hack”有效,但有一些缺点:

  • 控制台断开连接后将无法工作
  • 在页面加载中打开控制台时将不起作用

因此,我现在选择Unsigned的答案,但是如果some1提出了一个绝妙的主意,欢迎他继续回答,我将更改选择的答案!谢谢!


问题答案:

requestAnimationFrame(2019年末)

这些先前的答案留在这里作为历史背景。目前,穆罕默德·乌默(Muhammad
Umer)的方法
可在Chrome
78上运行,并具有检测关闭事件和打开事件的附加优势。

函数toString(2019)

var devtools = function(){};
devtools.toString = function() {
  this.opened = true;
}

console.log('%c', devtools);
// devtools.opened will become true if/when the console is opened

正则表达式toString(2017-2018)

由于原始的问号者似乎不再存在,并且仍然是公认的答案,因此添加了此解决方案以提高可见性。该解决方案利用了以下事实:toString()除非打开控制台,否则不会在已记录的对象上调用该事实。

var devtools = /./;
devtools.toString = function() {
  this.opened = true;
}

console.log('%c', devtools);
// devtools.opened will become true if/when the console is opened

console.profiles(2013)

更新: console.profiles已从Chrome中删除。该解决方案不再起作用。

使用探查器从DiscoverDevTools指出了该解决方案:

function isInspectOpen()
{
    console.profile(); 
    console.profileEnd(); 
    if (console.clear) console.clear();
    return console.profiles.length > 0;
}

window.innerHeight(2011)

此其他选项可以在页面加载后检测到停靠的检查器,但无法检测到未停靠的检查器,或者无法在页面加载时检查器已经打开。误报也有可能。

window.onresize = function()
{
    if ((window.outerHeight - window.innerHeight) > 100)
        alert('Docked inspector was opened');
}


 类似资料:
  • 今天我看到这个帖子,看看Chrome控制台是否打开了。 我可以绕过它,它可以被分配给另一个函数。我尝试了,然后检测函数就消失了(我知道写一个模拟函数更好,这里只是一个示例) 使用() 不会破坏检测,怎么走? 最后,我不得不说,我不喜欢被人监督。希望有一个合适的方式四处走动。

  • 我想通过在selenium webdriver中按键盘键Ctrl打开chrome浏览器控制台。我可以使用Robot类来做这个动作,但我希望没有Robot类。我使用了Actions类和Keys类,使用的是sendKeys。但我无法打开浏览器控制台。 是chrome浏览器版本问题还是操作系统问题?为什么浏览器控制台没有使用Action类和Keys类打开?

  • 当然,对于GUI,除非运行我上面提到的命令,否则不会加载控制台,所以如果您有很多打印语句,它是否仍然影响程序的速度,它们是否仍然打印?(即使认为没有显示终端/控制台)

  • 问题语句:我有一个在Xcode中运行的程序,它有一堆print()语句,可以很好地将输出打印到调试控制台。然而,我希望也能够将这些输出重定向到一个文件,这样我就可以让用户将它们发送给我,作为调试的一种方式。 SO上找到的解决方案使我可以将输出重定向到文件,但调试控制台输出将丢失。 问:我想要我的蛋糕和吃它。我希望能够将print()语句重定向到调试控制台和文件。 所以我有引用:https://st

  • 在chrome/Firefox控制台中找到xpath,但在selenium中找不到?有什么建议吗? Java代码双向: 以下是硒的作用: 线程“main”组织中出现异常。openqa。硒。TimeoutException:预期条件失败:等待元素可单击:按。xpath:/html1/body1/div2/div1/div1/div2/div2/div1/div3/div1/div[4]/div2/t

  • 问题内容: 我想建立一个自动化测试,所以我必须知道chrome控制台中出现的错误。 是否有一个选项来获取出现在控制台中的错误行? 为了查看控制台:右键单击页面中的某处,单击“检查元素”,然后转到“控制台”。 问题答案: 我不知道C#,但这是可以完成此工作的Java代码,希望您可以将其转换为C# 注意上面代码中的setUp方法。我们使用LoggingPreferences对象来启用日志记录。日志有几