IE 6 + innerHTML + link geht nicht
Stefan
- javascript
0 Gernot Back
0 stefan0 Gernot Back
0 stefan
Hallo,
habe letzte Woche meine erste dynamische Seite gebastelt (Bewertung/ Tagzuordnung laufen im Hintergrund).
Jetzt habe ich das mit dem IE Version 6.0 (.2800) getestet und siehe da ein Fehler. Nach mehrmaligem rumprobieren habe ich folgendes bemerkt:
wenn ich in div mit innerhtml neu schreibe, dann erhalte ich eine Fehlermeldung, wenn dieser Code Links enthält, andere tags wie b oder so gehen.
document.all.sbew.innerHTML="<a href='test'>text</a>";
Dabei ist es egal, ob ich das div über all oder getElementById anspreche.
Ist das normal? Und gibt es eine Lösung?
Stefan
Hallo Stefan,
Ist das normal? Und gibt es eine Lösung?
Ja, verzichte auf innerHTML und bau den DOM-Zweig mit allen seinen Elementen und Kindelementen über document.createElement() und appendChild().
Gruß Gernot
Vielen Dank Gernot,
die Anzeige funktioniert jetzt ab und zu (definierte Grafiken werden nur ab und zu angezeigt).
Ich habe aber ein anderes Problem, nach z.B. der Zuweisung:
newlink.setAttribute('onclick', 'getcambewertung(17);');
rufen alle Browser diese Funktion auf, aber leider übergibt der Internet Explorer nur eine 0 und keine 17???
Das Problem ist ja, dass der IE 6 immer noch fast die Hälfte der Besucher ausmacht (zumindestens bei mir).
Ich könnte in diesem Fall auch das div statisch anlegen, allerdings werden dann bei jedem die zehn zugrunde liegenden Grafiken geladen. Oder ich mache eine Imagemmap draus....
Hallo stefan,
Vielen Dank Gernot,
newlink.setAttribute('onclick', 'getcambewertung(17);');
rufen alle Browser diese Funktion auf, aber leider übergibt der Internet Explorer nur eine 0 und keine 17???
warum nicht einfach:
newlink.onclick = function () { getcambewertung(17); }
~~~?
Damit kommt wahrscheinlich auch der IE besser zurecht.
Gruß Gernot
--
[super me](http://community.de.selfhtml.org/my/visitenkarten/view.php?key=46)
Danke für die Antwort,
ich habe aber einen anderen workaround gefunden:
Wenn man in das div eine Tabelle integriert und in eine Tabellenzelle (td) und nicht in das div den Code per innerhtml schreibt, dann gehts auch im ie.
Seltsam oder?
Stefan