tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
842
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    tomhuber tomhuber ist offline Grünschnabel
    Registriert seit
    Oct 2005
    Beiträge
    1
    Hallo, ich habe folgendes Problem:
    Es handelt sich um eine MyFaces Komponente die mittels AJAX ein Tabellen- update vornimmt, d.h. es wird nicht der ganze View neu gesendet, sondern nur die TableRows.
    Es funktioniert wunderbar mit Firefox und Opera aber der IE kann folgende Zeile nicht ausführen: unbekannter Laufzeitfehler

    receiver.innerHTML = response;

    receiver ist ein HTMLTableSectionElement
    response sind die tableRows

    Ich verwende die prototype.js von http://prototype.conio.net/

    vielen Dank für eure Hilfe
     

  2. #2
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Ort
    München / Innsbruck
    Beiträge
    2.263
    Mit Tabellen kommt es öfter mal im IE zu Problem mit innerHTML. Du könntest entweder versuchen DOM-Konform die data-Eigenschaft ändern (das geht aber nur response selber keine HTML-Tags enthält) oder du versuchst es mal, indem du ein <div>-Tag in die Tabellenzelle packst und dann das Anstelle der Zelle als reciever nimmst.
     
    Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?

    | Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |

    -----------

    Zufriedenstellende Beiträge bitte als erledigt markieren!


  3. #3
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Im IE kannst du per innerHTML keine Tabellenelemente erzeugen(tr,th,td usw.)
    Wenn du neue tr(zzgl. td) in einer Tabelle erzeugen willst, musst du entweder per createElement()/appendChild() neue tr-Knoten erzeugen, in welche du wiederum neue td einhängst, und das ganze in die Tabelle einhängen(du kannst da auch per insertRow()/insertCell() arbeiten, das ist anwärtskompatibel zu IE4, die erstere Methode funktioniert erst ab IE 5.5)


    Eine andere Alternative wäre, die Tabelle in ein div o.ä. zu packen.
    Dann das innerHTML der Tabelle in eine String-Variable einlesen, und diesen String um den gewünschten Code erweitern.
    Danach kannst du dann der innerHTML-Eigenschaft des Eltern-Divs der Tabelle diesen String zuweisen.... das erzeugen kompletter Tabellen per innerHTML geht im IE nämlich.

    Ich schätze, so wie du es beschrieben hast, dürfte die letzte Variante dort am Einfachsten einzubringen sein.
     

Ähnliche Themen

  1. Problem mit innerHTML im Internet Explorer
    Von TobiNeu im Forum Javascript & Ajax
    Antworten: 12
    Letzter Beitrag: 27.05.10, 16:31
  2. Internet Explorer 6
    Von Steusi im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 27.08.08, 11:17
  3. Internet Explorer
    Von wavetraxx im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 08.07.08, 21:42
  4. XHR im Internet Explorer
    Von incsoft im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 01.05.07, 00:49
  5. Internet Explorer 7
    Von fluid im Forum Microsoft Windows
    Antworten: 14
    Letzter Beitrag: 15.10.04, 19:58