2016-09-29 1 views
-1

В форме есть две кнопки, и я хотел бы использовать GreaseMonkey для автоматического нажатия одной из кнопок при загрузке страницы. Две кнопки:Javascript, щелкнув одну из нескольких кнопок

<td rowspan="2"><input class="first action" name="first" type="submit" value="First Action" style="font-size: 10pt;" /></td> 
<td rowspan="2"><input class="second action" name="second" type="submit" value="Second Action" style="font-size: 10pt;" /></td> 

Я пробовал два нижеследующих кода, но ни один из них не работает. Первый выбирает форму и пытается ее отправить, и я получаю сообщение об ошибке «No Action Permitted». Второй пытается щелкнуть() кнопку.

Первое:

var button = document.getElementById('units_form'); 
window.location(button); 

Второе:

var button = document.getElementByClassName('first action'); 
button.click(); 
+1

У второго есть синтаксическая ошибка, которую вы бы увидели, если бы вы потрудились проверить консоль своего браузера. 'GetElement (ы) ByClassName'. Это Элементы PLURAL, а не единственные. –

+0

Элемент может быть с или без s, правильно? Это не работает в любом случае. –

+0

нет. он не может. он уникален для «byID», потому что dom ID ** MUST ** является уникальным. но могут быть элементы с одним и тем же классом, поэтому и множественное число функции. –

ответ

0

Во-первых, общее решение:

  • , чтобы получить объект элемента по имени класса, используйте document.getElementsByName("class_name")[0]. Последняя часть [0] дает вам в первую очередь элементы, которые имеют этот класс
  • Чтобы запустить событие на элемент, см. this article on MDN. Я настоятельно рекомендую читать все. Судя по вашему сообщению, вы совершенно ленивы, когда дело доходит до чтения статей.

Собираем все вместе:

var button_element = document.getElementsByName("button-class-name")[0]; 
var event_object = new MouseEvent('click', { 
    'view': window, 
    'bubbles': true, 
    'cancelable': true 
}); 
button_element.dispatchEvent(event_object); 

Кроме того, большинство сайтов используют библиотеку JQuery, для которых она сводится к:

$(".class_name").click(); 

Обратите внимание, что это будет срабатывать на всех элементах с, что имя класса.

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