2013-12-24 3 views
0

Я работаю над проектом, где я хочу изменить значение требуемых текстовых полей на веб-странице. Я использую javascript инъекции в веб-браузер, чтобы вставить значения текстовых полей.Если условия не работают в javascript-инъекции

В приведенном ниже коде я принял в документе activeElement и сравнил его с другим элементом в элементе List. и хотите вставить другую строку в следующее текстовое поле. Но в приведенном ниже коде условие 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

добавить еще скобки 'if ((editcount [cpt] .id == fcElement.id) &&! (BFlag)) {...' – adeneo

+0

@adeneo Почему вы предлагаете это? Что может быть проблемой здесь? – thefourtheye

+0

Когда вы запускаете это? Если это на pageload, почему бы ActiveElement был чем-то другим, кроме «окна» – adeneo

ответ

-2

Избегайте Bflag === правда

Попробуйте этот код. Это может быть полезно

  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; 
       } 
      } 
+1

Зачем это важно? – adeneo

+0

извините, его не работает –

+0

@AnkitB затем проверьте, какие значения вы получаете для editcount [cpt] .type и bFlag во время выполнения. Ваши значения могут быть причиной отказа условия – Prasath

0

Благодарим за помощь. У меня возникла проблема с моим кодом. Я сравнивал идентификаторы двух элементов. 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; 
    } 
}` 

Благодарим Вас за сотрудничество. С Рождеством.

Смежные вопросы