我正在开发一个项目,我希望在网页中更改所需文本框的值。
我正在使用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;
}
}
此处,密码也会复制到相同的文本字段中。
有人能告诉我这个剧本有什么不对吗?
答案 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;
}
}