Au tout début d'un fichier .js trés trés long réalisé par un chevronné professionnel de la programmation web, j'ai trouvé cette ligne de commande :
if (document.all) classFix = "className" ;
else classFix = "class";
Or je me demande à quoi peut-elle bien servir ?
Je pense qu'elle permet de résoudre un problème de compatibilité, mais je ne sais pas entre quoi et quoi. Un truc du genre si tu supportes document.all alors utilise className ou dans le cas contraire utilise class. Mais en fait, j'en sais rien.
Plus loin dans le code on trouve ceci :
col = document.createElement("div") //on créé un nouveau div
col.setAttribute("id", "bidule")//cette ligne ne sert à rien pour le problème posé, elle est ici présente juste pour rendre hommage à l'auteur de ce code
col.setAttribute(classFix, "laClaclasseasonpepere")//class présente dans la feuille de style
Je dirai plutôt que IE ne supporte pas :
setAttribute("class", "laClaclasseasonpepere")// conforme aux standards DOM
mais:
setAttribute("className", "laClaclasseasonpepere")// bizare !!
j'avais déjà coincé la dessus et je mets plutôt :
col.className = "laClaclasseasonpepere"// pas DOM
<script type="text/javascript">
if (document.all) classFix = "className";
else classFix = "class";
col = document.createElement("div") //on créé un nouveau div
col.setAttribute(classFix, "laClaclasseasonpepere")//class
document.body.appendChild(col) //ajoute l'élément dans la page
</script>
<style>
<DT>setAttribute(name, value) <DD>Cette méthode ne retourne aucune valeur.
Le paramètre name est du type String.
Le paramètre value est du type String.
IE représente 90% des navigateurs et ne respecte pas les standards, alors il faut faire du code bricolé pour passer sur tous les navigateurs !
pour aider drbosko pour poser une question, il faut sélectionner
forum/poser une questiondans le menu en haut de cette page.
ON ne peut pas mettre une page HTML dans un DIV,
seulement dans une FRAME ou une IFRAME quoique l'iframe ne fasse pas partie des standards.</DD>
j'aimerais savoir dans kel langage je peux réaliser ceci ;
J'ai une page web simple avec une feuille de style (CSS) (deffinissant la disposition des differentes divisions (
)) Je me suis basé sur le model de DreamWeaver ( CSS page design, un truc du style ! pour ke vous ayez un appercut plus clair peut etre et donc j'aimerais ... lorsque je clic sur un lien se trouvant dans :
qu'il envoie une page HTML simple dans la balise
.
J'espere avoir été assez clair étant donné que je suis un novice de la programmation.
En plaçant, dans le code test de ChimelPremier: alert(classFix); après le if, j'obtiens :
class avec : Mozilla 1.7.3 et Netscape 7.02
className avec : IE6 et Opera 7.54
Si maintenant je remplace le if par : classFix="class";
Mozilla : rectangle jaune
Netscape : rectangle jaune
IE6: rien du tout
Opera : rectangle jaune << tiens tiens ?
avec : classFix="className";
Mozilla : rien
Netscape : rien
IE6 : rectangle jaune
Opera : rectangle jaune
Conclusion :
<li>Mozilla et Netscape ne supporte pas document.all</li>
<li>IE6 et Opera le supporte</li>
<li>Mozilla et Netscape reconnaissent class comme argument de setAttribute</li>
<li>IE6 reconnait className comme argument de setAttribute</li>
<li>Opera reconnait aussi bien class que className comme argument de setAttribute</li>
Ceci étant dit, la syntaxe objet.className="laClaclasseasonpepere";
est reconnue par les 4 navigateurs dans leurs versions respectives
citées plus haut. On peut donc s'autoriser à penser que la condition
dont il est question est éventuellement destinée à des navigateurs
peut-être plus anciens qui ne géreraient pas la syntaxe : objet.className="uneclasse";
et obligeraient l'utilisation de setAttribute. Mais ceci reste une
hypothèse. Si ce n'est pas le cas cette condition s'avère inutile.
Les questions se posent sans cesse, mais le problème demeure.