首页 > 解决方案 > 如何从 Chrome 扩展程序中查找文本框

问题描述

我正在制作一个 Chrome 扩展程序,我需要它来查找网页上的任何表单文本框。

我首先尝试在我的内容脚本中执行此操作,例如:

document.getElementsByTag("text");

但它总是返回undefined,所以我假设它只是在搜索my_app.html

我的第一个问题是我应该使用什么函数:GetElmentsByTag、按名称、按类名,还是与其他函数一起使用?

我的第二个问题是我需要搜索哪个 JavaScript 文件?其他有类似问题的论坛说您需要在另一个文件(如背景或弹出窗口)中访问 DOM,然后将其发送到带有消息和侦听器的内容脚本。

标签: javascripthtmldomgoogle-chrome-extensioncss-selectors

解决方案


首先,您正在调用一个不存在的函数。您可能是指Document.getElementsByTagName()or Document.querySelectorAll(),如您在此处看到的:

console.log(document.getElementsByTagName);
console.log(document.querySelectorAll);
console.log(document.getElementsByTag);

此外,您的选择器是错误的:没有<text>HTML 元素。

如果您想要<input>具有任何type属性(textpasswordsearchradiocheckbox、 ...)的所有字段,那么您可以使用以下任何一种:

document.getElementsByTagName('input');

document.querySelectorAll('input');

如果您只想要<input>特定类型的 s,比如说text,您可以这样做:

document.querySelectorAll('input[type="text"]')

,最后,如果你想要<input>不同类型的 s ,你可以连接多个选择器:

document.querySelectorAll('input[type="text"], input[type="password"]')

推荐阅读