Re: [IE] Comment déclencher artificiellement la fonction affecté à onclick ?
Laurent vilday a écrit :
> <div id="lolo"></div> [...]
Quelques modifications dans l'exemple proposé, ajouter un
attribut onclick à chaque élément, donne des infos
intéressantes. Le comportement de Fx est conforme aux specs :
visiblement le click est ajouté à tous les INPUT mais
désactivés sur text, etc. Ce qui est conforme à la
référence DOM 2 ou la méthode void click(); figure dans la
définition de l'interface HTMLInputElement (Appendix B:
IDL Definitions) -- pas de distinction selon l'attribut
type.
--- Exemple modifié ---
<p><div id="lolo" onclick="test(this);">DIV Object</div>
<form>
<p><input type="text" value="input type=text" onclick="test(this);">
<p><input type="button" value="Button" onclick="test(this);"></button>
</form>
<script type="text/javascript">
window.onload = function()
{
var E = document.getElementById('lolo');
alert('1) div: ' + typeof E.onclick + '/' + typeof E.click);
try{E.click();} catch(e){};
E = document.forms[0].elements[0];
alert('2) input text: ' + typeof E.onclick + '/' + typeof E.click);
try{E.click();} catch(e){};
E = document.forms[0].elements[1];
alert('3) input button: ' + typeof E.onclick + '/' + typeof E.click);
try{E.click();} catch(e){};
};
function test(o){
o.style.color="#994477";
}
</script>
> 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". -
>
> Donc IE a tort tout le temps, jusque là rien de bien étonnant.
Mais une implémentation peut aller au-delà des spécifications ! Bon, elle
doit supporter l'ensemble de la norme, ce qui n'est pas le cas d'IE, mais
rien n'empêche d'ajouter des comportements comme click là où ce n'est pas
explicitement prévu...
Ceci dit, le problème évoqué par Bruno Desthuilliers (sur la réduction
dans la barre des tâches) a certainement à voir avec l'utilisation de
l'évènement par son script -- récupéré avec e.target ou event.srcElement.
Quand il est déclenché par click ou onclick la cible n'est pas forcément
l'objet qu'on attendrait... et idem pour this.
--
Y.D.
|