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




