[JavaScript] InnerHTML im IE

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] InnerHTML im IE

    Hi,

    habe ein kleines Problem.
    Ich tausche dynamisch den Inhalt von select-Boxen aus. Die Daten dazu stammen aus einem externen Script was per XMLHttpRequest Object geholt werden.
    Ich tausche den Inhalt der SelectBox direkt aus - das heißt mit innerHTML.

    Problem ist nun, das er IE beim austauschen des Inhalts der Selectbox den selbigen zerschiest.
    Ich hab dazu mal ein Beispielscript gecodet: http://www.triebschicht.de/spielwiese/innerhtml.html

    Drückt man im Firefox erst den "Austauschen" button und lässt sich dann den Inhalt der Selectbox anzeigen, ist alles OK - drei saubere options.

    Das selbe im IE schlägt ohne JavaScriptfehler fehl.
    Die Selectbox bleibt leer was verständlich ist, da der Inhalt zerschossen wird.

    Jemand ne Idee woran es liegen könnte?


    PS: Das Problem tritt auch im IE7 auf.

  • #2
    meiner meinung nach machst du irgendwas falsch ....

    http://de.selfhtml.org/javascript/ob...nte.htm#select
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hm, ok, dachte innerHTML wäre eine Universaleigenschaft - da lag ich anscheinend falsch. Wenn ich selfhtml richtig interpretiere darf man innerHTML nur auf dem body-Element benutzen - ist da korrekt?


      Ok, also jede Option im Objekt selbst machen.
      http://www.drweb.de/javascript/dynam...n_menues.shtml fand ich dazu in einem angrenzende Threas - nur leider ist option ja als "nur lesend" markiert - kann ich es trotzdem so machen? Oder schlägst du was anderes vor?

      danks

      Kommentar


      • #4
        Nochwas - style ist in der Liste auch nicht als Eigenschaft angegeben - und das kann ich ja wohl verändern, oder?

        Auch im DOM-Inspector sehe ich eine Eigenschaft innerHTML - Im IE allerdings nicht.

        Nachtrag: Opera macht auch ziemlichen Misst bei der Sache - wer Lust hat kann sichs ja mal anschauen.

        Kommentar


        • #5
          So,

          hab mich von innerHTML verbaschiedet und mache jetzt ordentlich Options innerhalb der Selects neu.

          PHP-Code:
          //XML
          <?xml version="1.0" encoding="ISO-8859-1"?>
          <elements>
            <elem>
              <id>6</id>
              <name>adqsdgsg</name>
            </elem>
            <elem>
              <id>5</id>
              <name>dieda</name>
            </elem>
          </elements>

          //JavaScript
          //e = SelectBox Element

          var data = req.respon************ML.getElementsByTagName('elem');
          var nodeId;
          var nodeName;            

          e.length = 0;
          e.options[0] = new Option('', '');
          for(i = 0; i < data.length; i++){
              nodeId = data[i].getElementsByTagName('id')[0].firstChild.nodeValue;
              nodeName = data[i].getElementsByTagName('name')[0].firstChild.nodeValue;

              e.options[i+1] = new Option(nodeName, nodeId);
          }
          i+1 weil ich vorher noch ein Element leer fülle.
          Für jegliche Verbesserungsvorschläge bin ich offen - und natürlich die Beantwortung meiner vorhergehenden Fragen

          Kommentar

          Lädt...
          X