Onclick & Passage de Parametres (Javascript - Greasemonkey) [Resolu]

Onclick & Passage de Parametres (Javascript - Greasemonkey) [Resolu] - HTML/CSS - Programmation

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é.
Reply

Marsh Posté le 14-02-2014 à 10:11:46   

Reply

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


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
Reply

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/


Message édité par gougoul07 le 14-02-2014 à 16:19:19

---------------
Mieux vaut apprendre à un homme à pêcher avant de l'avoir tué.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed