Problem mit Bild in dynamischen Table einzubinden
Markus Dillander
- javascript
0 Jörg Peschke0 JürgenB
Hi
Ich generiere mir dynamisch eine Tabelle und moechte nun anstatt Text, ein Bild in ein Datenelement aufnehmen. Dies hab ich nun folgendermassen versucht:
var img = document.createElement("img");
img.setAttribute("src", "event_icon_info.bmp");
mycurrent_row.appendChild(img);
Mit FFox funktioniert dies, jedoch leider zeigt der IE nix an und scheint diese Einbindung komplett zu ignorieren. Keine Fehlermeldung, kein Warning
Eine Idee wie das mit allen Browsern hinhauen koennte?
Gruss
Markus
Hallo,
var img = document.createElement("img");
img.setAttribute("src", "event_icon_info.bmp");
mycurrent_row.appendChild(img);
mycurrent_row ist hoffentlich das TD-Element? "row" klingt für mich immer nach <tr>, und wenn du das Bild ans tr dranhängst, kanns natürlich nicht gehen.
Ansonsten: Meine Erfahrung ist, dass der IE grundsätzlich Ärger macht, wenn man Tabellenzellen im Nachhinein verändert.
Evtl. kann man manchmal das Problem lösen, in dem man in die Tabellenzelle ein diuv packt, und dann in diesem Div etwas ändert.
Allerdings: 100%tig klappt das auch nicht immer. Das Problem ist eben, dass viele Browser durcheinander kommen, wenn sie eine bereits gerenderte Tabelle nochmal in den Ausmaßen verändern müssen.
Am besten also die Dynamischen Teile als einzelne Divs bauen, dann gibts am wenigsten Probleme in Zusammenhang mit DHTML (nach meiner Erfahrung).
Viele Grüße,
Jörg
Hi
mycurrent_row ist hoffentlich das TD-Element? "row" klingt für mich immer nach <tr>, und wenn du das Bild ans tr dranhängst, kanns natürlich nicht gehen.
Ja danke da wars, habs an tr rangehaengt... Das heisst das ganze schaut bei mir nun so aus:
var img = document.createElement("img");
img.setAttribute("src", "event_icon_info.bmp");
mycurrent_cell.appendChild(img);
mycurrent_row.appendChild(mycurrent_cell);
Nun durchlauf ich eine Schleife, das heisst in jeder Zeile sollte mir das selbe Bild eingefuegt werden. Witzigerweise wird das Bild jedoch nur in der ersten Zeile angezeigt! wenn ich anstatt dem Bild testweise Text nehme wird mir dieser wie gewuenscht in JEDER Zeile eingefuegt!
Eine Idee an was das liegen koennte?
Beste Gruesse
Markus
Eine Idee an was das liegen koennte?
Schon erledigt, hab vergessen ein CSS zu entfernen ;)
Gruss
Hallo Markus Dillander,
Nun durchlauf ich eine Schleife, das heisst in jeder Zeile sollte mir das selbe Bild eingefuegt werden. Witzigerweise wird das Bild jedoch nur in der ersten Zeile angezeigt! wenn ich anstatt dem Bild testweise Text nehme wird mir dieser wie gewuenscht in JEDER Zeile eingefuegt!
Eine Idee an was das liegen koennte?
steht in der Schleife nur das appendChild oder auch das createElement? Das Bild muss jedesmal neu erzeugt werden, durch createElemenet oder auch durch cloneNode.
Gruß, Jürgen
Hallo Jörg Peschke,
Ansonsten: Meine Erfahrung ist, dass der IE grundsätzlich Ärger macht, wenn man Tabellenzellen im Nachhinein verändert.
...
das kann ich nicht bestätigen. Ich habe eine Seite, bei der fast alle Tabellen zur Laufzeit erzeugt und mit Inhalt (Text und Formularelemente) gefüllt werden. Alle neueren Browser kommen damit klar.
Ich hatte nur mal den Fall, das, nachdem ich Tabelleninhalte dynamisch verändert habe, im IE ein PRE-Bereich unter der Tabelle "zerschossen" wurde, aber die Tabelle selbst war ok.
Gruß, Jürgen
Hallo Markus Dillander,
var img = document.createElement("img");
img.setAttribute("src", "event_icon_info.bmp");
mycurrent_row.appendChild(img);
der IE soll bei setAttribute schon mal Probleme haben. Versuch doch mal
img.src = ...
Gruß, Jürgen
PS: Du weißt, das es für das www geeignetere Bildformate gibt, als ausgerechnet bmp?