【问题标题】:How do you access element on unopened page with javascript without JQuery?如何在没有 JQuery 的情况下使用 javascript 访问未打开页面上的元素?
【发布时间】: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


【解决方案1】:

question that you linked 中,答案提供了一组使用JQuery 完成任务的说明,但您可以只使用香草javascript。您只需要更改步骤 1、6 和 7。

1:使用带有XMLHttpRequest而不是$.get()的get请求从页面获取HTML

6:使用FormData而不是.serialize()序列化表单数据

7:使用XMLHttpRequest而不是$.post()再次使用发布请求发布序列化数据,并具有获取响应的功能。

【讨论】:

  • 感谢您的帮助,我想我现在知道该怎么做了!我链接的上一个问题讨论了如何将数据提交到表单,但我需要访问页面上已有的信息。你能指导我如何做到这一点吗?
  • @Shilab66 嗯,我不太确定如何获取现有数据,抱歉。
  • 还是谢谢你,你帮助我指引了正确的方向!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
  • 2014-06-01
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多