You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Chrome扩展:如何通过代码调用DevTools元素选择器

触发Chrome DevTools原生元素选择器的方法

嘿,我之前也纠结过这个需求!想复用Chrome自带的那个元素选择功能(就是点了审查元素按钮后,鼠标变成选择状态,点页面元素就能在DevTools里高亮定位的功能),确实官方公开API里没直接列出来,但有个DevTools内部的API能完美实现,亲测好用:

1. 在DevTools控制台直接调用

如果只是在DevTools控制台里临时用,直接执行这句代码就行:

InspectorFrontendAPI.setInspectElementModeEnabled(true)

执行后鼠标立刻变成元素选择器样式,点击页面任意元素,就和手动触发审查元素一样,自动在Elements面板定位并高亮该元素。要退出选择模式的话,执行:

InspectorFrontendAPI.setInspectElementModeEnabled(false)

2. 在DevTools扩展代码中调用

如果是开发DevTools扩展,想在扩展面板或后台逻辑里触发这个功能,得通过chrome.devtools.inspectedWindow.eval()把代码注入到DevTools环境——因为扩展后台脚本没法直接访问DevTools内部API。示例代码:

// 开启元素选择模式
chrome.devtools.inspectedWindow.eval(
  "InspectorFrontendAPI.setInspectElementModeEnabled(true)",
  (result, isException) => {
    if (isException) {
      console.error("开启元素选择模式失败:", isException);
    }
  }
);

// 关闭元素选择模式(按需调用)
chrome.devtools.inspectedWindow.eval(
  "InspectorFrontendAPI.setInspectElementModeEnabled(false)",
  (result, isException) => {
    if (isException) {
      console.error("关闭元素选择模式失败:", isException);
    }
  }
);

注意事项

  • 这个InspectorFrontendAPI是Chrome DevTools的内部接口,虽然没被官方正式公开,但已经存在很久了,兼容性很稳定,目前Chrome 90+版本都能正常用。
  • 要是你在普通页面的JS里(而非DevTools环境或扩展),是调用不了这个API的——普通页面没权限访问DevTools内部接口,这种情况只能自己实现元素选择逻辑,但那就是另一个话题啦。

内容的提问来源于stack exchange,提问作者Rahul Jadhav

火山引擎 最新活动