Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在登录页面上使用browser.tabs.executeScript设置输入元素(type=text)的值_Javascript - Fatal编程技术网

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
输入