如果javascript注入条件不起作用

时间:2013-12-24 09:46:48

标签: javascript performance

我正在开发一个项目,我希望在网页中更改所需文本框的值。 我正在使用javascript注入到Web浏览器来粘贴文本字段的值。

在下面的代码中,我在文档中选择了activeElement,并将其与元素列表中的其他元素进行比较。并希望在下一个文本字段中粘贴另一个字符串。但是在下面的代码中,if----elseif---条件无法正常工作。

var editcount = document.getElementsByTagName('input');
var fcElement = document.activeElement;
var cpt = 0;
var bFlag = false;
for (cpt = 0; cpt < editcount.length; cpt++) {
    if (editcount[cpt].id == fcElement.id && !bFlag) {
        fcElement.value = "Username";
        bFlag = true;
    }
    else if((editcount[cpt].type == "password"||editcount[cpt].type == "text" || editcount[cpt].type == "email") && bFlag === true) {
        editcount[cpt].value = "Password";
        break;
    }
}

此处,密码也会复制到相同的文本字段中。

有人能告诉我这个剧本有什么不对吗?

2 个答案:

答案 0 :(得分:0)

感谢您的帮助。 我的代码有问题。 我正在比较两个元素的ID。 if (editcount[cpt].id == fcElement.id && !bFlag)

这对某些网页不起作用,但现在我得到了解决方案。

我已经改变了元素比较的条件,如下所示。 if (editcount[cpt].name == fcElement.name && !bFlag)

我的问题已经解决了。 我在这里发布我的工作代码...... `

var editcount = document.getElementsByTagName('input');
var fcElement = document.activeElement;
var cpt = 0;
var bFlag = false;
console.log(fcElement);
for (cpt = 0; cpt < editcount.length; cpt++) {
    console.log(editcount[cpt]);
    if (editcount[cpt].name == fcElement.name) {
        fcElement.value = "Username";
        bFlag = true;
    } else if ((editcount[cpt].type == "password" || editcount[cpt].type == "text" || editcount[cpt].type == "email") && bFlag === true) {
        editcount[cpt].value = "Password";
        break;
    }
}`

感谢您的合作。 圣诞快乐。

答案 1 :(得分:-2)

避免bFlag === true

试试这段代码。这可能会有所帮助

          var editcount = document.getElementsByTagName('input');
          var fcElement = document.activeElement;
          var cpt = 0;
          var bFlag = false;
          for (cpt = 0; cpt < editcount.length; cpt++) {
             if (editcount[cpt].id == fcElement.id && !bFlag) {
                fcElement.value = "Username";
                bFlag = true;
                }
             else if((editcount[cpt].type == "password"||editcount[cpt].type == "text" ||                   editcount[cpt].type == "email") && bFlag) {
                 editcount[cpt].value = "Password";
                 break;
              }
           }