Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2878 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  pb avec setAttribut, onClick et IE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb avec setAttribut, onClick et IE

n°714416
Lunatik3
Serial nounours
Posté le 03-05-2004 à 16:30:48  profilanswer
 

Salut, je vous fais un cas classique, je pense.
 
en faite j'ai creer un bouton auquel je veux assigner un evenement (avec onclick) et setAttribut().  
avec Netscape et mozilla ça marche la function est appeler, mais avec IE, que dale il en veux vraiment pas.
 

Code :
  1. var buttonOk = document.createElement('button');
  2.   buttonOk.setAttribute("name","Valider" ) ;
  3.   buttonOk.appendChild(document.createTextNode("Valider" ));
  4.  buttonOk.setAttribute("onclick","pg.stopBlink();return true" );
  5.   this.buttonOkForm.appendChild(buttonOk);
  6.   document.getElementById("afficher_date" ).appendChild(this.buttonOkForm);


 
voila, quelqu'un voit-il ce que IE ne veut pas?  
 
merci beaucoup d'avance :)

mood
Publicité
Posté le 03-05-2004 à 16:30:48  profilanswer
 

n°714493
Lunatik3
Serial nounours
Posté le 03-05-2004 à 17:33:41  profilanswer
 

probleme resolue.  
 
pour information il fallais mettre  

Code :
  1. buttonOk.onclick = function(){<code>}

n°714647
bobe
Posté le 03-05-2004 à 20:28:07  profilanswer
 

Précision, le:
 

Code :
  1. buttonOk.setAttribute("onclick","pg.stopBlink();return true" );


 
qui ne fonctionne pas, c'est un bug de IE.

n°714688
gm_superst​ar
Appelez-moi Super
Posté le 03-05-2004 à 21:34:43  profilanswer
 

lunatik3 a écrit :

probleme resolue.  
 
pour information il fallais mettre  

Code :
  1. buttonOk.onclick = function(){<code>}



Beurk. Autant utiliser les fonctions spécialement faites pour associer un évènement à un élément...
 
Pour moz :

Code :
  1. buttonOk.addEventListener("click", function, false);


 
Pour IE :

Code :
  1. buttonOk.attachEvent("onclick", function);


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°714692
bobe
Posté le 03-05-2004 à 21:39:35  profilanswer
 


 
Pour quelle raison ?
Ça a l'avantage de passer sur tous les navigateurs actuels.
 
addEventListener et attachEvent, c'est pratique pour installer plusieurs guetteurs sur le même évènement d'un même élément et (dans le cas de addEventListener) de profiter du modèle de capture d'évènements.
 
Si on a besoin ni de l'un ni de l'autre, autant utiliser element.onevenement = function() {}

n°714702
gm_superst​ar
Appelez-moi Super
Posté le 03-05-2004 à 21:55:25  profilanswer
 

bobe a écrit :

Pour quelle raison ?
Ça a l'avantage de passer sur tous les navigateurs actuels.


Bof, un petit wrapper sur les 2 fonctions et on en parle plus...
 

bobe a écrit :

Si on a besoin ni de l'un ni de l'autre, autant utiliser element.onevenement = function() {}


Ben déclarer le code d'une fonction en ligne comme ça je trouve ça ni lisible ni très souple...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°714717
bobe
Posté le 03-05-2004 à 22:10:06  profilanswer
 

gm_superstar a écrit :

Bof, un petit wrapper sur les 2 fonctions et on en parle plus...


 
Oui, c'est juste.
M'enfin on peut pas s'empécher au bout d'un moment de faire de même pour d'autres méthodes non implémentées par IE (ou d'autres navigateurs) et ça devient rapidement l'usine à gaz :(  
 
Il y a des possibilités pour ajouter directement une méthode sur un objet prédéfini ainsi que sur toutes ses instances, mais aucune ne marche sur IE.
 
exemple:
 

Code :
  1. HTMLElement.prototype.addEventListener = function() {
  2.     ...
  3. }


 
Propre, clean, bref l'idéal. Ne marche pas sous IE ni Opera.
 

gm_superstar a écrit :


Ben déclarer le code d'une fonction en ligne comme ça je trouve ça ni lisible ni très souple...


 
Oui mais ça, on peut le faire aussi avec addEventListener et attachEvent donc bon...
 
Et pûis rien n'empèche de déclarer la fonction avant:
 

Code :
  1. function blah() {
  2.     ...
  3. }
  4. element.onevent = blah;


Message édité par bobe le 03-05-2004 à 22:11:55

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  pb avec setAttribut, onClick et IE

 

Sujets relatifs
onClick + onmouseover etc...comment mettre en place ca ?[Javascript] : 2 événements sur un onclick [a y est résolu]
[compatibilité Mozilla] Onclick et submit()accesskey et onclick : marche pas sous IE ?
evenement onclickSaut de ligne dans un message sur onclick
[HTML\VBscript\Jvscript] apl un fct VBscript Server??? sur un onclick[JS] OnClick + Lien
[JS] ajout d'un handler onclick !!! urgent :([a href & onClick] comment faire cohabiter ces deux commandes ? RESOLU
Plus de sujets relatifs à : pb avec setAttribut, onClick et IE


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)