Javascript 如何在登录页面上使用browser.tabs.executeScript设置输入元素(type=text)的值
我想从扩展插件向任何给定的登录页插入用户名。扩展从服务器获取相关用户名,并使用Javascript 如何在登录页面上使用browser.tabs.executeScript设置输入元素(type=text)的值,javascript,Javascript,我想从扩展插件向任何给定的登录页插入用户名。扩展从服务器获取相关用户名,并使用browser.tabs.executeScript(code:“code here”)将其发送到活动选项卡。我目前只使用Firefox 我已经把代码,我已经尝试了一个更简单的版本,不包括匹配的id,标题,名称和占位符,但我仍然无法实现这一点 function insertCredentials(password, userName) { var i; var x = document.querySelecto
browser.tabs.executeScript(code:“code here”)
将其发送到活动选项卡。我目前只使用Firefox
我已经把代码,我已经尝试了一个更简单的版本,不包括匹配的id,标题,名称和占位符,但我仍然无法实现这一点
function insertCredentials(password, userName) {
var i;
var x = document.querySelectorAll("input[type='password']");
for (i = 0; i < x.length; i++) {
x[i].value = password;
}
//assume only 1 type=email input
var y = document.querySelector("input[type='email']");
y.value = userName;
var z = document.querySelectorAll("input[type='text']");
for (i = 0; i < z.length; i++) {
//test for user in name
if (z[i].name.match(/user/ig)) {
z[i].value = userName;
}
//test for user in title
if (z[i].title.match(/user/ig)) {
z[i].value = userName;
}
//test for user in id
if (z[i].id.match(/user/ig)) {
z[i].value = userName;
}
//test for user in placeholder
if (z[i].placeholder.match(/user/ig)) {
z[i].value = userName;
}
}
}
函数插入指令(密码、用户名){
var i;
var x=document.querySelectorAll(“输入[type='password']”);
对于(i=0;i
代码通过活动选项卡中的type=email
或type=text
将所有输入获取到节点列表或变量中
它循环元素,如果type=text
它测试名称、id、标题或占位符属性中的字符串“user”(不区分大小写)。如果找到匹配项,元素的值将设置为与代码一起发送的用户名
注入的脚本正确地识别type=email
的输入,并相应地设置值(在type=password
的位置也可以正常工作),但它不识别(例如)type=text
和id=username
或name=userID
或占位符=“此处的电子邮件或用户名…”的输入
,并将其留空
当我允许浏览器在测试期间保存登录时,Firefox浏览器确实正确地填充了用户字段
为什么此脚本不识别type=text
输入