【发布时间】:2022-01-24 23:41:07
【问题描述】:
我正在尝试构建一个 chrome 扩展,该扩展需要使用 document.getElementById 访问 html 元素的特定 <p> 标记的值,而无需打开或加载页面。例如,我可能想使用“input”的 id 查看 google 主页上搜索栏的占位符是什么。
Image of google search bar example
假设占位符值会改变。我想获取占位符,而不必每次要访问信息时都打开 chrome 新标签。
我认为这可以使用 chrome 扩展后台脚本/服务工作者(我正在使用清单 3)来完成,但我无法弄清楚如何做到这一点。我也愿意接受任何普通的 JavaScript 方法来做到这一点。
此外,我发现this question 说要使用 JQuery(我想避免但将作为最后的手段使用)或使用一些对我不起作用的代码。我还发现 this article 关于在 chrome 扩展中使用后台脚本,但它旨在将数据放入表单而不是从标签中取出数据,并且在清单 2 中。
到目前为止,我拥有的唯一代码是获取请求并打开页面。我不确定接下来要做什么来获取特定元素。
var request = new XMLHttpRequest();
request.open("GET","http://www.example.org/example.txt");
【问题讨论】:
-
“不打开页面本身”是什么意思?页面不加载应该如何访问?
-
我编辑了这个问题,现在更容易理解了吗?
-
“没有打开或加载页面”对我来说仍然很奇怪。如果您不请求任何标记,则无法访问该标记中的任何元素,因此您需要以任何方式加载该页面
-
你是想说不可能吗?在这种情况下,我有一个替代方案,但我在清单 2 中看到了使用此属性的 chrome 扩展,所以我很确定在清单 3 中有一种可能的方法。例如,我找到了这篇文章:sitepoint.com/create-chrome-extension-10-minutes-flat跨度>
-
这取决于您所说的“不加载页面”是什么意思。随时通过编辑为您的问题添加所有说明。另外,如果您发现一篇文章已经涵盖了此类内容,为什么不分享您解决问题的尝试,以便其他人可以检查哪里出了问题?
标签: javascript html google-chrome-extension google-chrome-devtools chrome-extension-manifest-v3