Как нажать input type = "submit" в новейшем Firefox? - PullRequest
0 голосов
/ 29 декабря 2010

Я сделал довольно популярным UserJS для Facebook, но начиная с версии FF 3.6.13 он не работает (для этой версии).Я просто понятия не имею, как я могу щелкнуть такие элементы:

<input value="Accept" type="submit" name="something... asdf" />

?Нажатие таких кнопок с помощью мыши перенаправляет на другую страницу.

Мой скрипт выполняет поиск таких элементов с помощью Xpath, а затем щелкает их с помощью простого acceptbutton.click();

. Он отлично работает в Opera, Chrome иFF <3.6.13, но в новейшей версии ничего не происходит.Я также попробовал и функции fireEvent, и функцию eventFire, которые я нашел здесь в stackoverflow и которые часто помогают мне, но на этот раз они не могут. </p>

Вероятно, использование функции JQuery click() поможет, но я не могу использоватьjquery в моем userjs.

Я также пытался acceptbutton.form.submit();, но он перенаправляет меня на неправильную страницу.

Редактировать:

Хорошо, я добавляю фрагмент кода

                 var acceptbuttons = xpath(document,'//label[@class="uiButton uiButtonConfirm"]/input');
        for (var i = 0; i < acceptbuttons.snapshotLength; i++) { 
        //will search for particular accept button
            var acceptbutton = acceptbuttons.snapshotItem(i);
            var acceptbuttonName = acceptbutton.getAttribute("name");

            if(acceptbuttonName.indexOf(urlPart)!=-1)
            {
            // it founds button but function below do nothing in FF
            acceptbutton.click();return;
            }
        }

Спасибо за любую помощь!

Ответы [ 3 ]

1 голос
/ 30 декабря 2010

Вы можете использовать click() метод кнопки отправки в последнем Firefox.У тебя что-то не так.У вас есть событие onsubmit в форме, которое препятствует выполнению клика, или у вас неправильная кнопка?

Я отправил это, вставив javascript: document.getElementById('submit-button').click(); void(0); в мою строку местоположения в Firefox 3.6.13.Кредит на эту идею идет здесь: Авто-POST JavaScript с ИМЯ

0 голосов
/ 29 декабря 2010

Если acceptbutton.form.submit(); не работает из-за того, что часть value="Accept" не отправлена, почему бы не добавить скрытый ввод, чтобы он был?

var hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.name = acceptbutton.name;
hiddenInput.value = acceptbutton.value;
acceptbutton.form.appendChild(hiddenInput);
acceptbutton.form.submit();
0 голосов
/ 29 декабря 2010

Хм, не буду делать простой документ .whwhat_formname.submit (); сделать трюк?

...