Onclick & Passage de Parametres (Javascript - Greasemonkey) [Resolu] - HTML/CSS - Programmation
Marsh Posté le 14-02-2014 à 13:53:14
Bonjour,
Ton soucis vient d'une petite incompréhension de onclick.
en gros, onclick = callback (reference d'un fonction).
En gros, (TRES gros), en c on dirait qu'il faut mettre un pointeur de fonction.
En effet, quand ca se passe mal ("newImg.onclick=OuvreTchat(numero); -> pas okay" ) c'est du au faite que le code n'est pas valide.
La parade c'est de faire newImg.onclick=function(){ OuvreTchat(numero); }; -> Normalement okay
Marsh Posté le 14-02-2014 à 14:26:17
en tout petit, c'est exactement ça
merci
edit:
plus d'explication ici
http://www.developpez.net/forums/d [...] hees-eval/
Marsh Posté le 14-02-2014 à 10:11:46
Bonjour a tous,
J'ai fait un script pour une utilisation avec Greasemonkey sur un forum (xooit)
Il analyse la page et ajoute quelques fonctions, quand il rencontre un nom d'utilisateur
il ajoute derrière celui-ci un lien pour avoir la liste des derniers messages et une image clickable
qui ouvre un tchat vers cet utilisateur.
Le problème que je rencontre est le suivant, si je déclare la fonction pour le onclick sans paramètres ca marche
le tchat n'est ouvert que si l'on clicke l'image
si je met un paramètre dans la fonction, celle ci est executée lors du chargement de la page que l'on clicke ou pas
sur l'image.
en clair, avec le code ok, le chargement de la page se passe bien, il n'y a d'ouverture de la page de tcaht que si je clique sur l'image
avec le code pas ok lors du chargement de la page, il m'ouvre toutes les fenêtres de tchat de tous les utilisateurs rencontres sur celle-ci
voici mon code
function AddLinkMessages1( node, nom, numero ) {
var newImg = document.createElement( 'img' );
newImg.src = tchatImg;
newImg.style.cursor = 'pointer';
newImg.style.marginRight = '3px';
tn = document.createTextNode( " " );
newImg.alt = newImg.title = 'Tchat MI';
newImg.onclick=OuvreTchat; -> okay
newImg.onclick=OuvreTchat(numero); -> pas okay
newImg.onclick = window.open('/chat.im.php?u=' + numero,'_blank','menubar=no,toolbar=no,width=800,height=600,resizable=yes,scrollbars=yes'); -> serait l'ideal mais est executé systematiquement
list[i].parentNode.insertBefore( newImg, list[i].nextSibling );
list[i].parentNode.insertBefore( tn, list[i].nextSibling );
}
function OuvreTchat(userId) ou function OuvreTchat()
{
code d'ouverture de la fenêtre tchat
}
Message édité par gougoul07 le 14-02-2014 à 14:33:11
---------------
Mieux vaut apprendre à un homme à pêcher avant de l'avoir tué.