Bug sous IE provenant de setAttributeNode !! ?

sora570 Messages postés 14 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 mai 2010 - 19 déc. 2008 à 20:12
sora570 Messages postés 14 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 mai 2010 - 24 déc. 2008 à 01:27
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...
A voir également:

5 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
20 déc. 2008 à 09:22
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
0
sora570 Messages postés 14 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 mai 2010
22 déc. 2008 à 11:01
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...
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 11:53
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         
0
sora570 Messages postés 14 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 mai 2010
22 déc. 2008 à 13:58
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sora570 Messages postés 14 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 mai 2010
24 déc. 2008 à 01:27
Je re lance le sujet personne na d'idée ?

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