2010-10-07 6 views
1

J'écris un script greasemonkey qui crée une boîte de type de recherche auto-complète qui facilite la sélection dans une grande liste déroulante sur une page Web. La liste déroulante contient un code de changement en ligne que je n'arrive pas à déclencher lorsque je change la sélection en utilisant javascript. Des idées?Trigger inline onchange javascript

Répondre

1

Supposons que la page avait quelque chose comme:

<input onchange="someFunction()"> 

Ensuite, votre JavaScript Greasemonkey pourrait changer la valeur d'entrée et puis appelez la fonction à l'aide:

unsafeWindow.someFunction(); 
+0

Ah. Ça a marché. Des idées sur la façon dont vous arrêteriez la clé d'entrée de soumettre le formulaire? – Joren

+0

@Joren: Ouvrez une nouvelle question pour cela et publiez les détails. En général, vous modifiez la façon dont vous liez le gestionnaire d'événements et/ou utilisez 'event.preventDefault();', 'event.stopPropagation();', et 'return false;' dans un/le gestionnaire d'événements approprié. –

0

Vous pouvez déclencher le onchange « vraiment » :

De au sein de GM:

unsafeWindow.dropdownObject.onchange(); 

de la page Web:

dropdownObject.onchange(); 
0

Pour tampermonkey, cela fonctionne tout simplement sans utiliser unsafewindow.

Supposons que le dropdownbox est défini dans page web quelque chose comme:

<select id="dd_id", onchange="myfunction()"> 

Ensuite code suivant dans userscript déclenche l'événement onchange:

document.getElementById('dd_id').onchange(); 

En outre, il est recommandé d'éviter l'utilisation de unsafewindow dans la documentation .

Questions connexes