Greasemonkey: настройка значений формы не работает в Firefox - PullRequest
0 голосов
/ 16 августа 2010

Это работает безупречно в Chrome, но в Firefox поля не заполняются до ВТОРОГО раза, когда я нажимаю «Отправить» на странице (после того, как он возвращается с первого раза, сообщая мне недопустимый пользователь / пароль). Чего мне не хватает?

Это мой код для скрипта Greasemonkey:

document.getElementById('loginBtn').addEventListener('click',
function (event) {
    document.getElementById('serverLogin').selectedIndex = "2";
    document.getElementById('usernameLogin').value = "username";
    document.getElementById('passwordLogin').value = "password";
    document.getElementById('loginForm').action = 'urltosubmit';
    location.href="javascript:(function(){ document.forms['loginForm'].submit(); })()";
},true);

Ответы [ 2 ]

0 голосов
/ 17 августа 2010

или, может быть ...

document.getElementById('loginForm').addEventListener("submit", function(e)
{
    var fields = e.target.elements;
    fields.namedItem("serverLogin").selectedIndex = 2;
    fields.namedItem("usernameLogin").value = "username";
    fields.namedItem("passwordLogin").value = "password";
    e.target.setAttribute("action", "urltosubmit");
}, false);
0 голосов
/ 16 августа 2010

Вы должны опубликовать свой код формы, но проблема, скорее всего, в распространении событий.

Измените функцию на:

document.getElementById('loginBtn').addEventListener('click',
function (event) {
    document.getElementById('serverLogin').selectedIndex = "2";
    document.getElementById('usernameLogin').value = "username";
    document.getElementById('passwordLogin').value = "password";
    document.getElementById('loginForm').action = 'urltosubmit';
    location.href="javascript:(function(){ document.forms['loginForm'].submit(); })()";

    event.preventDefault();
    event.stopPropagation();
    return false;
},true);
...