setAttribute ne Fonctionne ni avec IE ni avec Firefox!?
Quelle est son utilité niveau compatibilité?
setAttribute ne Fonctionne ni avec IE ni avec Firefox!?
Quelle est son utilité niveau compatibilité?
setAttribute(name,value) est une méthode du DOM, Level 2, donc il fonctionne dans IE et dans FFx.Envoyé par Lareine
Tu as un exemple de code ou ça ne marcherait pas?
Dans celui là par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function bordure(bouton) { boutonElements=document.getElementsByTagName('td','div') for (b=0;b<boutonElements.length;b++){ if(boutonElements[b].className==bouton){ boutonElements[b].setAttribute("onmousedown","this.style.borderStyle='inset';") boutonElements[b].setAttribute("onmouseup","this.style.borderStyle='outset';") } } } window.onload = function(){bordure('bouton')};!
et un truc dans ce genre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 boutonElements[b].onmousedown = function() { this.style.borderStyle='inset'; }![]()
Pour moi ca releve plus de la gestion d'evenement que d'attributs le onmousetruc....
Tu veux dire que setAttribute n'a aucun interet à être utilisé pour la
compatibilité dans cette fonction précise donc?
Je te demande ça, comme je ne comprend rien à ta réponse...
Et moi je ne comprends rien à ta question![]()
![]()
As tu essayé de renseigner l'évenement onmousedown comme je te l'ai proposé , quel est le résultat ?
Oui avec:
et sa marche impec sous IE Opera et Firefox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 boutonElements[b].onmousedown=function(){this.style.borderStyle='inset';} boutonElements[b].onmouseup=function(){this.style.borderStyle='outset';}!
Du coup je comprend pas l'interet du doublement de ligne avec setAttribute:
Puisque ça ne fonctionne qu'avec Opera qui fonctionne aussi très bien avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 boutonElements[b].setAttribute("onmousedown","this.style.borderStyle='inset';") boutonElements[b].setAttribute("onmouseup","this.style.borderStyle='outset';")
les deux autres lignes d'instructions???
C'est clair là Mr.N Membre Expert???
Non. Sa Majestée voudrait-elle me faire l'honneur d'expliquer ce qu'elle entends par "doublement de ligne" ?Envoyé par Lareine
![]()
Envoyé par Lareine
Utiliser une ligne sur deux de codes différent pour des histoires de compatibilité:Envoyé par Mr N.
boutonElements[].setAttribute("onmousedown","this.style.borderStyle='inset';") // Opera & ?
boutonElements[].onmousedown=function(){this.style.borderStyle='inset';} // Opera, IE et FFx
boutonElements[].setAttribute("onmouseup","this.style.borderStyle='outset';") // Opera & ?
boutonElements[].onmouseup=function(){this.style.borderStyle='outset';} // Opera, IE et FFx
Mais je ne comprend pas trop l'utilité niveau compatibilité après avoir testée
chaque groupe de deux lignes séparement avec Opera, IE et Firefox sous
Windows!?
D'où ma question: "Quels sont les navigateurs qui ont besoin de setAttribute
pour pouvoir fonctionner dans cette exemple?"
Mon brâve Expert pouvez-vous éclairer ma royale lanterne?! S'il vous plais....
Pourquoi faire simple quand on peut faire compliqué...
Tu as une ligne de code qui fonctionne pour les trois navigateurs IE Fx et Opera.... Pourquoi en mettre une autre pour Opera ???
element.onmouseout = function() est la méthode standard pour affecter un évennement à un element. Si un navigateur ne fonctionne pas sur ce principe, c'est memme pas la peine de s'interesser à lui.
Quand à opera qui marche avec setAttribute, c'est peut-etre pour des raisons de compatibilités...
C'est bien l'impression que j'en aisEnvoyé par Mr N.
!
Des raisons de Compatibilité d'Opera avec setAttribute donc ?Envoyé par Mr N.
Donc setAttribute fait bien doublon pour la gestion de ce type évennements?
Ben ca parait logique non...
attribut != evenement surtout dans ta logique de supprimer tout ce qui est traitement du code (X)HTML
Vue comme çà oui!
le XHTML dans XHTML et les évenement JavaScript dans un *.js :o ...
Partager