2016-09-29 1 views
-1

Il y a deux boutons présents dans un formulaire, et je voudrais utiliser GreaseMonkey pour cliquer automatiquement sur l'un des boutons lorsque la page se charge. Les deux boutons sont:Javascript en cliquant sur l'un des boutons

<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> 

J'ai essayé les deux codes ci-dessous, mais aucun ne fonctionne. Le premier sélectionne le formulaire et essaie de le soumettre, et j'obtiens une erreur qui dit «Aucune action autorisée». La seconde essaie de cliquer() sur le bouton.

Première:

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

Deuxième:

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

le second a une erreur de syntaxe, ce que vous auriez vu si vous aviez pris la peine de vérifier la console de votre navigateur. 'getElement (s) ByClassName'. C'est Elements PLURAL, pas singulier. –

+0

L'élément peut être avec ou sans s, correct? Cela ne marche pas de toute façon. –

+0

no. ça ne peut pas. c'est un singulier pour "byID" car un ID dom ** DOIT ** être unique. mais il peut y avoir plusieurs éléments avec la même classe, ainsi le pluriel de la fonction. –

Répondre

0

Tout d'abord, la solution générique:

  • pour obtenir un objet élément par nom de classe, utilisez document.getElementsByName("class_name")[0]. La dernière partie [0] vous donne le premier de tous les éléments qui ont cette classe
  • Pour déclencher un événement sur un élément, voir this article on MDN. Je conseille fortement de lire tout. A en juger par votre publication, vous êtes assez paresseux quand il s'agit de lire des articles.

Mettre tous ensemble:

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); 

En outre, la plupart des sites utilisent la bibliothèque jQuery, pour laquelle il se résume à:

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

Notez que ce feu sur tous les éléments avec ce nom du cours.