HaThoV: Dynamisches Einfügen im IE (CSS-Klassen gehen verloren)

Moin Gemeinde,

nach langer Zeit ich mal wieder. Ich befasse mich gerade mit dem dynamischen Auffüllen von Layern aus einer externen XML-Datei. Funktioniert prima. Jedenfalls mit dem FF. Nur der IE (6.0) bereitet mir da ein paar Problemchen. Der macht das zwar, scheint aber dabei die dem Bereich zugeordneten CSS-Klassen bzw. ihre Eigenschaften zu verlieren.

Keine Ahnung, woran das liegt oder wie ich Abhilfe schaffen kann. Wer weiß Rat?

Ein nächstes seltsames Problem ergibt sich beim Versuch, das online zu starten. Auch hier macht der FF keine Probleme. Der IE ignoriert aber online plötzlich eine Routine, die er offline klaglos abarbeitet. Hier die Routine:

  
function scanLinkBar(){  
 SITEMAP = document.getElementById('LinkBar').getElementsByTagName('a')  
 for (i=0;i<SITEMAP.length;i++){  
  HREF = SITEMAP[i].getAttribute('href')  
  if (HREF.indexOf('http:') == -1 && HREF.indexOf('video') == -1 && HREF.indexOf('slideshow') == -1){   
~~~<- Ab hier macht er online nicht mehr mit  
~~~javascript
  
   if (HREF.indexOf('#') == -1 && SITEMAP[i].parentNode.getElementsByTagName('a').length > 1)  
    HREF = SITEMAP[i+1].getAttribute('href')  
   IDENT = HREF.slice(HREF.lastIndexOf('/')+1,HREF.lastIndexOf('.'))  
   if (HREF.indexOf('#') != -1) IDENT = IDENT+'_'+HREF.slice(HREF.indexOf('#')+1)  
   SITEMAP[i].setAttribute('href','javascript:showPage("'+IDENT+'")')  
  }  
 }  
 return  
}  

Wie gesagt: ratlos...

Wer es sich online angucken will: http://www.wildswasser.de

mfg
T.

--
"they got the guns - we got the number" - James Douglas Morrison
  1. Hallo,

      
    
    >    if (HREF.indexOf('#') == -1 && SITEMAP[i].parentNode.getElementsByTagName('a').length > 1)  
    >     HREF = SITEMAP[i+1].getAttribute('href')  
    
    ...  
    
    

    beim letzten Schleifendurchlauf hast du eine Feldgrenzenüberschreitung.

    weitere Unannehmlichkeiten würdest du dir ersparen, wenn du die Variablen  lokal definierst: -> var i,HREF,....

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·
    1. beim letzten Schleifendurchlauf hast du eine Feldgrenzenüberschreitung.

      Nö. Hab' ich nicht.

      weitere Unannehmlichkeiten würdest du dir ersparen, wenn du die Variablen  lokal definierst: -> var i,HREF,....

      Wäre vielleicht sauberer, macht aber keine Unannehmlichkeiten.

      Gruß plan_B

      mfg
      T.

      --
      ---
      "they got the guns - we got the number" - James Douglas Morrison
      1. Hallo,

        beim letzten Schleifendurchlauf hast du eine Feldgrenzenüberschreitung.

        Nö. Hab' ich nicht.

        hoffentlich denkst du bei der Pflege deiner Navi daran, dass der letzte Link keine Unterpunkte enthalten darf
        ( möglicherweise habe ich deine Konstruktion auch nicht durchschaut)

        Wäre vielleicht sauberer, macht aber keine Unannehmlichkeiten.

        macht aber auch keinen erhöhten Aufwand

        Gruß plan_B

        --
             *®*´¯`·.¸¸.·
        1. Moin Gemeinde,

          Hallo,

          hoffentlich denkst du bei der Pflege deiner Navi daran, dass der letzte Link keine Unterpunkte enthalten darf

          Kann er nicht. Der letzte hat auch keine. Das filtert die Abfrage schon raus, weil die Schleife nur anspringt, wenn Sublinks vorhanden sind.

          Gruß plan_B

          mfg
          T.
          --
          "they got the guns - we got the number" - James Douglas Morrison

  2. Hallo,

      
    
    >   if (HREF.indexOf('http:') == -1 && HREF.indexOf('video') == -1 && HREF.indexOf('slideshow') == -1){   // <- Ab hier macht er online nicht mehr mit  
    
    

    online wird der Link ein "http:" enthalten ...

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·
    1. Moin Gemeinde,

      online wird der Link ein "http:" enthalten ...

      Dann enthält er auch ein 'http:'. Hat mich aber auf die richtige Spur gebracht: Der IE macht aus jeder relativen URI automatisch die vollständige Adresse mit 'http:'. Problem behoben. Danke.

      Gruß plan_B

      mfg
      T.

      --
      "they got the guns - we got the number" - James Douglas Morrison
  3. Moin Gemeinde,

    Problem gelöst! Man muß den IE patchen, d.h. aus dem eingelesenen Segment mit "getAttribute" das Attribut auslesen und es anschließend mit "className" zurückschreiben.

    Desweiteren will der IE *unbedingt* seinen "<TBODY>" in Tabellen.

    mfg
    T.
    --
    "they got the guns - we got the number" - James Douglas Morrison