gpt4 book ai didi

javascript - Chrome 扩展程序 : is there a ways to access the $0 (the selected console element) from an extension?

转载 作者:行者123 更新时间:2023-11-28 20:14:36 24 4
gpt4 key购买 nike

我正在尝试访问我正在构建的扩展程序的 $0(这是 Chrome 开发人员工具中最后选择的元素)。

有办法吗?

更多信息:该扩展是页面操作扩展。它有几个功能,我希望有一个选项来查询当前选定的对象 ($0)。

我可以将其保留为页面扩展扩展还是我必须采用开发人员工具插件方式?

最佳答案

$0 仅当开发者工具仍处于激活状态时才有意义。获得 $0 结果的唯一方法是通过 devtools page .

开发工具页面可以使用 message passing APIs 与扩展程序的其余部分进行通信。 。在正常情况下,开发工具的状态(打开/关闭)是已知的,并且在(页面操作)弹出窗口的生命周期内是固定的在弹出窗口打开时无法切换开发工具除非弹出窗口是 being inspected
所以,devtools 页面应该是一个接收者 chrome.runtime.onMessagechrome.runtime.onConnect ,弹出窗口应该是发件人 chrome.riuntime.sendMessagechrome.runtime.connect .

在开发工具页面中,您可以使用 chrome.devtools.inspectedWindow.eval 轻松与最后检查的元素进行交互。 :

// E.g. Test if the currently inspected element is the main <body> element
chrome.devtools.inspectedWindow.eval('$0 === document.body', function(result) {
alert('$0 is ' + (result ? '' : 'not ') + '<body>');
});

最后一个表达式的结果被传回回调。该值必须是可序列化的,因此您无法“返回”DOM 元素本身。因此,您无法直接访问 DOM 元素,与受检查元素的任何交互都必须通过 devtools API 完成。

关于javascript - Chrome 扩展程序 : is there a ways to access the $0 (the selected console element) from an extension?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19400796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com