如何检测Chrome Inspect Element是否正在运行?

Moh*_*naq 23 javascript console google-chrome

有没有办法检测Chrome Inspect Element窗口是否正在运行?

例如,如果用户点击Chrome中的"检查元素",则该窗口会显示Hello World警告.

那可能吗?

Dmi*_*ich 34

更新这不再有效.该属性console.profiles已在Chrome 29中删除.

剩下的唯一解决方案是检查@Gerben 之间window.outerHeight和之间window.innerHeight的区别.有一个基于此方法的devtools-detect库可以添加devtoolschangewindow对象中.

或者,正在努力使用更强大的检测方法创建Chrome扩展程序,请参阅此Google网上论坛.


以下是他们如何在Discover DevTools互动课程的第一个挑战中检查DevTools是否开放:

function () {
    console.profile(); 
    console.profileEnd(); 
    if(console.clear) { console.clear() };
    return console.profiles.length > 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 哈!别客气.;) (11认同)
  • 这将很快在Chrome中停止运行:https://codereview.chromium.org/15816002(对不起,你们都有) (4认同)
  • 通过使用折叠的控制台组隐藏通过运行探查器生成的消息,可以使此技术稍微不那么突兀.请参阅https://github.com/adamschwartz/chrome-inspector-detector (2认同)

Ger*_*ben 12

window.onresize = function(){
 if((window.outerHeight-window.innerHeight)>100)
   alert('hello');
}
Run Code Online (Sandbox Code Playgroud)

在行动:http://jsbin.com/ediquk/

请注意,似乎resize事件被触发两次,因此您应该检查是否已经提醒使用了.

  • 是.只有在停靠时.我看不出你怎么能找到一个未对接的检查员. (5认同)
  • 但这在窗口调整大小时也会触发……这比打开检查器要频繁得多。 (2认同)
  • 我怀疑这也会由拥有多个工具栏或其他修改浏览器 UI 的扩展的人触发。例如,Chrome 书签工具栏就计入此计算。 (2认同)