Comment déclencher artificiellement la fonction affecté à onclick ?

Le
Jean Ceugniet
Salut,

Voilà, j'ai la fonction javascript suivante :

> function partieJoueurOut (joueur_id, lien)
> {
> lien.parentNode.style.display = "none";
> x_maj_stats (joueur_id, $idPartie, majFinie);
> }



et le code php suivant :

> <li><a href="#" onclick="partieJoueurOut($joueur_id, this);">$nom est OUT</a></li>

(Les variables $ sont des variables php, le code est généré en php).
Sur une certaine condition, je souhaite pouvoir déclencher
artificiellement la fonction affectée au onclick d'un certain lien; je
peux sans problème repérer le lien en question dans la page (c'est le
seul dont le display ne soit pas encore à none), et je voudrais pouvoir
déclencher la fonction affectée à son évènement onclick.
Comme faire pour obtenir l'équivalent d'un "execute (this.onclick);" ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mickaël Wolff
Le #753677

Comme faire pour obtenir l'équivalent d'un "execute (this.onclick);" ?


cible.onclick() ;

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

ASM
Le #753676
En réponse à Jean Ceugniet qui écrivit, en date du : 1/09/07 12:21, le
message suivant :
Salut,

Voilà, j'ai la fonction javascript suivante :

function partieJoueurOut (joueur_id, lien)
{
lien.parentNode.style.display = "none";
x_maj_stats (joueur_id, $idPartie, majFinie);
}




et le code php suivant :

<li><a href="#" onclick="partieJoueurOut($joueur_id, this);">$nom est
OUT</a></li>


(Les variables $ sont des variables php, le code est généré en php).
Sur une certaine condition, je souhaite pouvoir déclencher
artificiellement la fonction affectée au onclick d'un certain lien; je
peux sans problème repérer le lien en question dans la page (c'est le
seul dont le display ne soit pas encore à none), et je voudrais pouvoir
déclencher la fonction affectée à son évènement onclick.


il suffit donc de lancer cette fonction, non ?

this.onclick();

Merci


toujours chercher au plus simple :-)



var truc = document.getElementsByTagName('A');
for(var i=0; i<truc.length; i++)
if(truc[i].style.display!=='none') {
truc[i].onclick();
return false;
}

ou

var truc = document.links;
for(var i=0; i<truc.length; i++)
if(truc[i].href && truc[i].style && truc[i].style.display!=='none') {
truc[i].onclick();
return false;
}



autre exemple :

<form onsubmit="return false;">
<button name="visu" onclick="alert('vu');">voir</button>
</form>
bouton [voir]</a>

La fonction JavaScript : element.click();
ne fonctionnerait que pour des boutons de formulaires


à +


Jean Ceugniet
Le #753675
Ah ben oui. Je concevais onclick comme un évènement auquel on affectait
une méthode, pas comme une méthode lui-même.

Merci à tous :D
ASM
Le #753674
En réponse à Jean Ceugniet qui écrivit, en date du : 1/09/07 22:23, le
message suivant :
Ah ben oui. Je concevais onclick comme un évènement auquel on affectait
une méthode, pas comme une méthode lui-même.


Je ne sais si c'est tout à fait ça ... ?

essaie :
alert(truc.onclick);

on voit qu'on récupère la fonction contenue dans le onclick de truc

par l'adjonction de () à cette récup on en lance l'appel.

.

Cenekemoi
Le #753364
Salut,

Voilà, j'ai la fonction javascript suivante :

function partieJoueurOut (joueur_id, lien)
{
lien.parentNode.style.display = "none";
x_maj_stats (joueur_id, $idPartie, majFinie);
}




et le code php suivant :

<li><a href="#" onclick="partieJoueurOut($joueur_id, this);">$nom
est OUT</a></li>


(Les variables $ sont des variables php, le code est généré en php).
Sur une certaine condition, je souhaite pouvoir déclencher
artificiellement la fonction affectée au onclick d'un certain lien; je
peux sans problème repérer le lien en question dans la page (c'est le
seul dont le display ne soit pas encore à none), et je voudrais
pouvoir déclencher la fonction affectée à son évènement onclick.
Comme faire pour obtenir l'équivalent d'un "execute (this.onclick);" ?

Merci


Méfie-toi juste de ton code dit php avec ta variable $joueur_id car le
généré Html sera du type :

<a href="#" onclick="partieJoueurOut(12345, this);">TOTO est OUT</a>

Tout va bien si $joueur_id est numérique, mais attention s'il peut être
*alpha*. Il faut alors coder en php :

<a href="#" onclick="partieJoueurOut('$joueur_id', this);">$nom est
OUT</a>

(voir les apostrophes autour de $joueur_id)

--
Cordialement, Thierry ;-)


Bruno Desthuilliers
Le #753360

kess que ça veut dire "iconifier" ?



la fenêtre disparait (sans que l'appli soit fermée), et une icone de
l'appli apparait dans la barre des taches...



La version de Windows en français que j'utilise appelle ça « réduire ».
Et dans un fichier de configuration sous AIX c'est « minimize ».


Merci Olivier !-)



Bruno Desthuilliers
Le #753359
En réponse à Bruno Desthuilliers qui écrivit, en date du : 4/09/07
14:43, le message suivant :



kess que ça veut dire "iconifier" ?

la fenêtre disparait (sans que l'appli soit fermée), et une icone de

l'appli apparait dans la barre des taches...




Ha oui ! Rigolo comme comportement :-)

Ces IE ne nous épargnent vraiment aucune facétie !


N'est-ce pas ?-)

Bon, accessoirement, j'ai (partiellement) résolu le problème, en partie
grâce à un autre de tes posts dans ce thread qui m'a rappelé l'existence
de la fonction click(). Qui - dois-je le préciser - fonctionne sous IE
(même pour un lien), mais lève une exception sous mon vieux mozilla...
J'attends de tester ça demain sous une version récente de Firefox, mais
je subodore que là encore, on est dans une portabilité optimale :(

Enfin bref, c'est que du bonheur.



Jean Ceugniet
Le #753358
Salut,

Voilà, j'ai la fonction javascript suivante :

function partieJoueurOut (joueur_id, lien)
{
lien.parentNode.style.display = "none";
x_maj_stats (joueur_id, $idPartie, majFinie);
}




et le code php suivant :

<li><a href="#" onclick="partieJoueurOut($joueur_id, this);">$nom
est OUT</a></li>


(Les variables $ sont des variables php, le code est généré en php).
Sur une certaine condition, je souhaite pouvoir déclencher
artificiellement la fonction affectée au onclick d'un certain lien; je
peux sans problème repérer le lien en question dans la page (c'est le
seul dont le display ne soit pas encore à none), et je voudrais
pouvoir déclencher la fonction affectée à son évènement onclick.
Comme faire pour obtenir l'équivalent d'un "execute (this.onclick);" ?

Merci


Méfie-toi juste de ton code dit php avec ta variable $joueur_id car le
généré Html sera du type :

<a href="#" onclick="partieJoueurOut(12345, this);">TOTO est OUT</a>

Tout va bien si $joueur_id est numérique, mais attention s'il peut être
*alpha*. Il faut alors coder en php :

<a href="#" onclick="partieJoueurOut('$joueur_id', this);">$nom est
OUT</a>

(voir les apostrophes autour de $joueur_id)



Il est numérique :D (mais j'y penserai pour un prochain truc ;) merci)



Bruno Desthuilliers
Le #753355


Je confirme.
- sous FF, utiliser:
document.getElementById('mon_lien').onclick();
- sous IE, utiliser:
document.getElementById('mon_lien').click();



Ce qui est amusant, c'est que seul HTMLInputElement.click() est prévu
par la recommandation du W3C

Je comprends mieux cette incohérence entre les navigateurs !


Ce qui est le plus amusant AMHA (et continue à m'échapper...), c'est la
réaction de IE sur l'utilisation de element.onclick(). Si c'est
systématiquement reproductible, il y a de quoi faire un petit script
très énervant pour les utilisateurs de cette bouse infâme^Mmerveille de
la technologie moderne !-)


Bruno Desthuilliers
Le #753023

Comme faire pour obtenir l'équivalent d'un "execute (this.onclick);" ?


cible.onclick() ;



A ce propos, sous IE7, j'ai une bonne blague avec ça (en combi avec un
setTimeout): ça m'iconifie la fenêtre !

j'ai pas encore eu le temps de revenir sur le pb pour essayer de
l'isoler proprement, mais si qqu'un a déjà vu ça et qu'il a trouvé le
joint, l'info m'intéresse...

TIA


Publicité
Poster une réponse
Anonyme