OVH Cloud OVH Cloud

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

25 réponses
Avatar
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

10 réponses

1 2 3
Avatar
ASM
En réponse à Bruno Desthuilliers qui écrivit, en date du : 4/09/07
13:19, le message suivant :

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 !


kess que ça veut dire "iconifier" ?


Avatar
Bruno Desthuilliers
En réponse à Bruno Desthuilliers qui écrivit, en date du : 4/09/07
13:19, le message suivant :

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 !


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



Avatar
Olivier Miakinen

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


Avatar
ASM
En réponse à Olivier Miakinen qui écrivit, en date du : 4/09/07 17:03,
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...


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


Et moi j'appelle ça "replier" (en barre des tâches).



Avatar
ASM
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 !


Avatar
ASM
En réponse à Olivier Miakinen qui écrivit, en date du : 4/09/07 17:03,
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...


La version de Windows en français que j'utilise appelle ça « réduire ».


et comment appellent-ils ce que ça fait quand on clique le bouton (du
milieu) de réduction de la fenêtre ?

Et dans un fichier de configuration sous AIX c'est « minimize ».


Je continue à préférer "replier" ;-)
bien que "minimise" me semble pas mal malgrè qu'on puisse minimiser la
fenêtre sans pour autant la replier.



Avatar
Olivier Miakinen

La version de Windows en français que j'utilise appelle ça « réduire ».


et comment appellent-ils ce que ça fait quand on clique le bouton (du
milieu) de réduction de la fenêtre ?


Le bouton du milieu s'appelle « agrandir » puisque mes fenêtres ne sont
jamais en plein écran. Une fois agrandi (j'aurais dit « maximisé »), le
bouton devient « niveau inférieur » pour revenir à l'état normal.

Et dans un fichier de configuration sous AIX c'est « minimize ».


Je continue à préférer "replier" ;-)
bien que "minimise" me semble pas mal malgrè qu'on puisse minimiser la
fenêtre sans pour autant la replier.


Sur AIX, quand la fenêtre est à l'état « window » et que je « minimize »
elle passe à l'état « icon » (c'est vraiment une icone, et pas un bouton
dans une hypothétique barre des tâches, laquelle n'existe pas). Quand la
fenêtre est à l'état « icon » alors je « normalize » pour la ramener à
l'état « window ». Je n'ai pas le truc dans mon fichier de config, mais
je parie que passer la fenêtre en plein écran s'appellerait « maximize ».


Avatar
Bruno Desthuilliers
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 :(


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

<troll cible='ASM'>
Ou alors se simplifier la vie avec jQuery:
$('#mon_lien').click();

!-)
</troll>




Avatar
Mickaël Wolff

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
<http://www.w3.org/TR/DOM-Level-2-HTML/html.html>

Je comprends mieux cette incohérence entre les navigateurs !
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Avatar
Laurent vilday
Ce qui est amusant, c'est que seul HTMLInputElement.click() est prévu
par la recommandation du W3C
<http://www.w3.org/TR/DOM-Level-2-HTML/html.html>

Je comprends mieux cette incohérence entre les navigateurs !


<div id="lolo"></div>

<form><input type="text"></form>

<script type="text/javascript">
window.onload = function()
{
var E = document.getElementById('lolo');
alert('1) ' + typeof E.onclick + '/' + typeof E.click);

E = document.forms[0].elements[0];
alert('2) ' + typeof E.onclick + '/' + typeof E.click);
};
</script>


FX2 :
1) undefined/undefined
2) undefined/function

IE7 :
1) object/object
2) object/object

Op9 :
1) object/undefined
2) object/function

La RFC stipule, je cite : - Method click: Simulate a mouse-click. For
*INPUT* elements whose type attribute has one of the following values:
"button", "checkbox", "radio", "reset", or "submit". -

Ce qui en français : Simule un clic de souris. Pour les éléments *INPUT*
dont l'attribut type à une des valeurs suivantes : "button", "checkbox",
"radio", "reset" ou "submit"

Donc seul FX2 et Op9 implémentent (sur les 3 misérables tests que j'ai
fait) correctement cette partie de la RFC et si j'ai tout compris lol ce
qui n'est pas gagné. Je ne m'attendais guère à mieux de la part du IE -
eh oui, on ne parle plus /de/ IE mais /du/ IE, ce wild animal :)

Par contre d'ou provient le onclick pour Opéra, je ne sais pas.
Tentative d'émulation du comportement IE probablement.

M'enfin tout cela ne m'inspire comme souvent que ceci : sniff sniff :(

--
laurent

1 2 3