无法在镶边扩展中获取已检查的元素

Unable to get the inspected element in chrome extension

提问人:Rohit 提问时间:8/20/2023 最后编辑:Rohit 更新时间:8/20/2023 访问量:45

问:

我正在尝试使用 chrome 扩展 api 在网页中获取 dom 元素。 以下是我为扩展程序编写的清单chrome.devtools.inspectedWindow.

{
    "manifest_version": 3,
    "name": "Component Selector",
    "version": "1.0",
    "devtools_page": "devtools/devtools.html",
    "permissions": ["activeTab", "tabs", "debugger"]
}

我在 devtools 中编写的 js.js如下

function getInspectedElement() {
  chrome.devtools.inspectedWindow.eval(
    'inspect($0)',
    function (result, exceptionInfo) {
      if (!exceptionInfo) {
        console.log('Element selected for inspection:', result);
        if (result) {
          console.log(result.style);
        }
      } else {
        console.error('Error selecting element:', exceptionInfo);
      }
    }
  );
}

chrome.devtools.panels.elements.onSelectionChanged.addListener(
  getInspectedElement
);

chrome.devtools.panels.create("My Panel",
  null,
  "devtools/panel.html",
  function (panel) {
  }
);

当我在控制台中检查输出时,我仍然收到以下错误enter image description here

javascript google-chrome-extension chromium

评论

0赞 wOxxOm 8/20/2023
您没有每个manifest.json的内容脚本。删除。useContentScriptContext: true
0赞 Rohit 8/20/2023
谢谢@wOxxOm,现在我没有收到错误,但是当我在控制台中打印结果对象时,它显示一个空对象。如何获取对已检查的 dom 节点的引用?
0赞 Rohit 8/20/2023
添加了新的 devtool.js 文件代码。如果您参考了我可以从中学习的工作代码或现有项目,那将非常有帮助。
0赞 Rohit 8/20/2023
对不起,我不明白你的意思。我只在 eval 方法的 callbak 中使用该元素。你的意思是我不能将该方法称为方法的回调吗?如果是,我应该如何知道正在检查的节点何时发生了变化。getInspectedElementonSelectionChanged.addListener
0赞 wOxxOm 8/20/2023
您只能在计算的代码中使用该元素。这是 的第一个参数。eval

答: 暂无答案