查看 Chrome 控制台是否打开

2024-02-17

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

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

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

This:

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

不起作用。

EDIT:

所以看来无法检测Chrome控制台是否打开。但有一个“hack https://stackoverflow.com/questions/7527442/how-to-detect-chrome-inspect-element-is-running-or-not” 可行,但有一些缺点:

  • 当控制台脱离底座时将不起作用
  • 当控制台在页面加载时打开时将不起作用

所以,我现在会选择 Unsigned 的答案,但如果 some1 提出了一个绝妙的主意,欢迎他仍然回答,我会更改所选的答案!谢谢!


将之前的答案留在下面以了解历史背景。

调试器 (2022)

虽然这并非万无一失,基于调试器的方法 https://stackoverflow.com/a/68494829/629493在另一个答案中似乎仍然有效。

requestAnimationFrame(2019 年末)

现在穆罕默德·乌默尔的方法 https://stackoverflow.com/a/48287643/629493适用于 Chrome 78,具有检测关闭和打开事件的附加优势。

函数 toString (2019)

归功于超频 https://stackoverflow.com/users/3734569/overcl9ck对此答案的评论。替换正则表达式/./使用空函数对象仍然有效。

var devtools = function() {};
devtools.toString = function() {
  if (!this.opened) {
    alert("Opened");
  }
  this.opened = true;
}

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

正则表达式 toString (2017-2018)

由于最初的询问者似乎不再存在,并且这仍然是公认的答案,因此添加此解决方案以提高可见性。信用去往安东尼·希尔德布兰德 https://stackoverflow.com/users/84283's comment https://stackoverflow.com/questions/7798748/find-out-whether-chrome-console-is-open/7809413#comment62884356_30638226 on zswang https://stackoverflow.com/users/1068602/zswang's answer https://stackoverflow.com/a/30638226/629493。该解决方案利用了以下事实:toString()除非控制台打开,否则不会在记录的对象上调用。

var devtools = /./;
devtools.toString = function() {
  if (!this.opened) {
    alert("Opened");
  }
  this.opened = true;
}

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

控制台.profiles (2013)

Update: console.profiles已从 Chrome 中删除。该解决方案不再有效。

谢谢保罗·爱尔兰 https://stackoverflow.com/users/89484指出这个解决方案发现开发工具 http://discover-devtools.codeschool.com/chapters/1/challenges/1,使用分析器:

function isInspectOpen() {
  console.profile();
  console.profileEnd();
  if (console.clear) {
    console.clear();
  }
  return console.profiles.length > 0;
}
function showIfInspectIsOpen() {
  alert(isInspectOpen());
}
<button onClick="showIfInspectIsOpen()">Is it open?</button>

窗口.innerHeight (2011)

这个其他选项可以检测停靠的检查器打开后,页面加载,但无法检测到未停靠的检查器,或者检查器是否已在页面加载时打开。也存在一些误报的可能性。

window.onresize = function() {
  if ((window.outerHeight - window.innerHeight) > 100) {
    alert('Docked inspector was opened');
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查看 Chrome 控制台是否打开 的相关文章

随机推荐

  • 简单的 jQuery ajax 问题是否成功返回数据?

    嗨 我有以下内容 ajax type POST url global pathPrefix services brochure asmx ShowPostRequest data parkIds input ids val success
  • wpf使用网格作为itemshost自动将多个项目堆叠在单个“单元格”中

    我将项目控件绑定到数据源并使用网格作为我的项目主机 我希望让这些项目将自己定位到网格中的正确单元格中 我可以做到这一点 并且也将自己堆叠起来 这样它们就不会全部彼此重叠 我不知道如何将这些项目插入到stackpanel 或网格中的其他面板
  • django控制器在views.py中是什么

    我已经遵循了几个 django 教程 我不知道为什么控制器存储在名为views py 的文件中 我对这个文件名感到困惑 我正在寻找 MVC 开发 django 中还有其他用于 真实 控制器的文件吗 名字views py是一个错误 从架构的角
  • 如何在 TypeScript 中声明具有属性的函数的类型?

    我在 TypeScript 网站上阅读了一些文档 但不确定我是否理解正确 在这种情况下 我使用的包没有可用的 TypeScript 类型 prismic reactjs 所以我试图自己声明类型 这样我就可以摆脱困扰我的项目的错误 那么 作为
  • “null this”是否可以接受扩展方法的使用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Rails 定期计费 - 我有哪些选择?

    在开始之前 我想知道我的所有选择是什么 如果可能的话 它们的优点和缺点 我知道的两个正在使用 ActiveMerchant 或 paypal recurring gem 但它们会满足这些要求吗 能够适应按月和按年计费 能够暂停 取消帐户等
  • 20 多天后由于碎片而导致 Android 出现内存不足错误

    我制作了一个在咖啡机上运行的应用程序 20 多天后 可能是 60 多天 具体取决于使用情况 发生 OutOfMemoryError java lang OutOfMemoryError Failed to allocate a 604 by
  • 在 Android 上滑动即可切换标签,例如 YouTube/Google Music 应用

    在最新版本的应用程序中 谷歌实现了一种非常酷的方式 可以在选项卡之间滑动而不是单击选项卡标题 我想知道是否有人对如何做到这一点有更具体的想法 以下是一些想法 欢迎批评 我最初的想法是这不是一个标准TabActivity举办儿童活动 事实上
  • 使用 ftrace 和 kprobes 捕获用户空间程序集(通过使用虚拟地址转换)?

    对于这篇较长的帖子表示歉意 我无法以较短的方式表述它 另外 也许这更适合 Unix Linux Stack Exchange 但我会首先在这里尝试 因为有一个ftrace tag 无论如何 我想观察用户程序的机器指令在完整的上下文中执行fu
  • 方法“[]”在 null 上调用。接收者:空

    为了隔离问题 我创建了一个新代码 一个新程序和一台新机器 相同的结果 它只是不想打印 quotes 之后且具有 anythingPrice 的任何值 我再次可以给您一个临时密钥 您可以完全运行代码 在你身边 请告诉我 import dart
  • AS3 中 onReleaseOutside 最简单的实现?

    我是 ActionScript 2 的长期用户 现在开始使用 ActionScript 3 我缺少的一件事是复制 AS2 MovieClip onReleaseOutside 功能的简单方法 几乎总是有必要实现这个事件 否则你会得到一些有趣
  • Http 请求仅在发布 Android APK 时失败

    我正在努力让我的应用程序在 Android APK 版本上运行 唯一失败的情况是生成和签名 apk 所有的http请求都不起作用 服务器在SSL下运行 我已经尝试过的所有场景 ionic serve gt 工作正常 ionic cordov
  • Gstreamer - Android 上的硬件加速视频解码

    我在 Android 手机上通过 RTP UDP 接收视频 但我发现 CPU 使用率非常高 几乎 100 的一个核心都用于解码视频 在高端设备上 视频播放几乎流畅 但在中低端设备上 我几乎每秒无法获得 1 帧 这是一个 H 264 视频流
  • WebApi 中的 Windows 任务计划程序或 TaskService 函数

    我想在 ASP NET Web API 中创建一些函数 这些函数应该每天在特定时间执行并执行特定任务 例如更新状态 记录 生成电子邮件 短信 我应该在代码中创建一个 TaskService using System using Micros
  • 为什么我的 unique_ptr 认为有一个空函数指针删除器? [复制]

    这个问题在这里已经有答案了 我正在尝试使用 C 学习 SDL 我创建了一个window h标头和一个window cpp用于存储 Window 类的源文件 在window h它看起来像这样 Class Window public Windo
  • 如何在 MongoDB 中对 $filter 结果进行 $slice ?

    我有一个具有以下格式的集合 id 123 items status inactive created ISODate 2016 03 16T10 39 28 321Z status active created ISODate 2016 0
  • 将 SVG 和 .JPG 合并为一张图像?

    我有一个在地图应用程序中使用 SVG VML 通过 Raphael JS 设置的网站 其中 SVG 用于在背景地图图像上显示图形 这在屏幕上非常有效 并且可以打印带有叠加层的硬拷贝地图 然而 当用户想要将带有 SVG 叠加层的地图图像保存到
  • 如何使用 ELKI 中的索引结构?

    这些是报价形式http elki dbs ifi lmu de http elki dbs ifi lmu de 本质上 我们将抽象距离查询绑定到数据库 然后对该距离进行最近邻搜索 此时 ELKI 将自动选择最合适的 kNN 查询类 如果我
  • 使用 VB.NET 连接到 socket.io

    我有一个在 Heroku 上运行的应用程序 它使用套接字 io http socket io 与客户沟通 到目前为止 所有客户端都是 HTML JS 所以效果很好 现在我想用 Visual Basic 编写一个客户端 但我找不到任何其他人编
  • 查看 Chrome 控制台是否打开

    我正在使用这个小脚本来查明 Firebug 是否打开 if window console window console firebug is open 而且效果很好 现在我搜索了半个小时 想找到一种方法来检测Google Chrome内置的