Bug sous IE provenant de setAttributeNode !! ?

Signaler
Messages postés
14
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 mai 2010
-
Messages postés
14
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 mai 2010
-
Bonsoir à tous.

Voila j'avais un problème dans mes dom sous ie ducoup j'ai décider de faire ce petit exemple tout simple qui ce comporte de cet façons:

1. création d'un noeud élement : div
2. création d'un noeud élement : span
3. création d'un noeud text : texte
4. création d'un noeud attribute : style
5. initialisation de style

6. attache du texte au span

7. attache du span à  la div
8. attache de l'attribut à la div
9. alert pour vérifier que c'est une div
10. implémentation de la div dans le body

    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">

function init()
{

1        var div = document.createElement("div");
2        var span = document.createElement("span");
3        var texte = document.createTextNode("Texte de test");
4        var style = document.createAttribute("style");
       
5        style.nodeValue = "overflow:hidden;line-height:100%";
6        span.appendChild(texte);
7        div.appendChild(span);
8        div.setAttributeNode(style);
       
9        alert(div);
10      document.getElementById("body").appendChild(div);

}

     </script>
     </head>
11
     </html>

Donc sous Firefox sa marche et sur les moteur DHTML aussi comme konqueror, opéra... mais sous IE 5, 6, 7,  et la Beta 8 sa marche pas
le rapport de bug qui me donne est le suivant:

Ligne 24 *: Cet objet ne gère pas cet propriété ou cet méthode.

*ligne 24 qui correspond eu 11 de l'exemple

Et pour finir j'ai oublier de préciser que si je retire l'ajout d'attribut le script marche tré bien sous IE

Voila tout est dit. J'espère que vous pourrait m'apporter vos lumière car une opignon externe me serais la bienvenue :)

Le partage de connaissance est essentiel pour construire un monde...

5 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
bonjour,

je t'avoue que je préfère utiliser directement style, ça me semble bien plus simple

    var span = document.createElement("span");
    span.style.overflow="hidden";
    span.style.lineHeight="100%";

    ou  span.className="nom .élément css";

je ne répond pas réellement c'est vrai, mais bon, les comportements de IE et de FF
    diffèrent là aussi, jamais approfondis car style directement : ça baigne.

Cordialement

[mon Site][M'écrire]Bul
Messages postés
14
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 mai 2010

Arf ouai seulement le problème c'est que moi dans mon cas concret j'ai tout un système d'automatisation qui construit du xHTML et ajoute des attribut via une node Attribute.

car je considère que la méthode " span.style.overflow="hidden"; " est un peux archaïque quoi que efficasse mais ça me demanderais une grosse modification.

-------------------------------------------------------------------------------------------------------
Le partage de connaissance est essentiel pour construire un monde...
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
alors il faut que tu contrôles la syntaxe de IE pour ça.
dans certains cas, il préfère les majuscules par exemple...
          [mon Site] [M'écrire] Bul         
Messages postés
14
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 mai 2010

deux petit test qui parle d'eux même.

   function init()
   {
       var style = document.createAttribute("align");
       style.nodeValue = "center";
       document.getElementsByTagName("h1")[0].setAttributeNode(style);
   }

  Ça marche sous Firefox et IE !

   function init()
   {

       var style = document.createAttribute("style");

       style.nodeValue = "text-align:center;";

       document.getElementsByTagName("h1")[0].setAttributeNode(style);
   }

  Ça marche sous firefox et ça marche PAS sous IE !

Je commence à désespéré avec ce navigateur que 65% des français utilise


-------------------------------------------------------------------------------------------------------
Le partage de connaissance est essentiel pour construire un monde...
Messages postés
14
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 mai 2010

Je re lance le sujet personne na d'idée ?

-------------------------------------------------------------------------------------------------------
Le partage de connaissance est essentiel pour construire un monde...