@MrZed

JS Как исправить или проигнорировать ошибку?

Делаю расширение для Chrome.
Что оно делает: При нажатии на кнопку в окне расширения, все скрытые пароли на сайте становятся видны.
КОД:
function Show(){
    var text = document.querySelectorAll("input");

    for (var i = 0; i < text.length+1; i++) {
        if(text[i].getAttribute("type") == "password"){     // Тут происходит ошибка
            text[i].setAttribute("type", "text_show");
        };
    };
};

Получаю ошибку:
Uncaught TypeError: Cannot read property 'getAttribute' of undefined

Можно ли проигнорировать ошибку и продолжить работу кода?
В Интернете искал находил что-то вроде:
function stoperror(){
    return true
}
window.onerror=stoperror();

или
try {
  // код
} catch (err) {
  // обработка ошибки
}

Но не работает(Или я что-то не так делаю), код всё равно не продолжает роботу!
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Пригласить эксперта
Ответы на вопрос 2
@Steppp
Попробуй так

function Show(){
    var text = document.querySelectorAll("input");

    for (var i = 0; i < text.length+1; i++) {
   
        if(elem.hasAttribute('password') && text[i].getAttribute("type") == "password"){     // Тут происходит ошибка
            text[i].setAttribute("type", "text_show");
        };
    };
};


Если будет ошибка, то попробовать так

function Show(){
    var text = document.querySelectorAll("input");

    for (var i = 0; i < text.length+1; i++) {
   
        if (!elem.hasAttribute('password')) return;

        if(text[i].getAttribute("type") == "password"){     // Тут происходит ошибка
            text[i].setAttribute("type", "text_show");
        };
    };
};
Ответ написан
@Coolam
Web-developer
Если я всё правильно понял, то должно на JQuery работать так:

$('ЗДЕСЬ_ТВОЯ_КНОПКА').on('click', function(){
    $('input[type="password"] или класс, который присвоен твоим input`ам с типом "password"').attr('type', 'text');
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы