Immer noch: Laufzeitfehler bei 'outerHTML'-Änderung
Sue
- javascript
Hallo nochmal an alle,
ist bitte jemand von den JavaScript-Spezialisten so lieb und und schaut mal, ob er einen Tipp für mich hat? Das hier hatte ich heute früh um 8 gepostet:
http://forum.de.selfhtml.org/?m=76142&t=13723
Vielen lieben Dank im Voraus!
Grüße
Sue
Hallo Sue,
Das hier hatte ich heute früh um 8 gepostet:
http://forum.de.selfhtml.org/?m=76142&t=13723
angesichts Deiner vielen Beiträge in der Zwischenzeit,
wo Du ja durchaus anderen zu helfen versuchst:
1. Neue Threads zum selben Posting zu öffnen, macht
Dich nicht beliebter - "alte" threads werden sehr
wohl gelesen; Drängeln nützt ebenfalls nichts.
2. Wie wäre es mit einer genaueren Problembeschreibung?
(Der exakte Text der Fehlermeldung würde ggf.
helfen, auch etwas mehr Quelltext wäre nicht
verkehrt.)
3. Was meint Google zu Deiner Laufzeitfehlermeldung?
4. Was sagt der Hersteller zu Deinem Problem?
Viele Grüße
Michael
Hallo Michael,
angesichts Deiner vielen Beiträge in der Zwischenzeit,
wo Du ja durchaus anderen zu helfen versuchst:
Ich bin doch kein egoistischer Unmensch, es ist nur ..... meine Familie wird mir bald eine auf's Dach geben, wenn ich meine eh schon knappe Freizeit jetzt auch noch vor dem Computer verbringe.
- Neue Threads zum selben Posting zu öffnen, macht
Dich nicht beliebter - "alte" threads werden sehr
wohl gelesen; Drängeln nützt ebenfalls nichts.
Ok, ich bin ja gern bereit zu lernen und mich Euren Sitten hier anzupassen. Wenn ich mich also danebenbenommen haben sollte, bitte ich hiermit höflichst um Nachsicht für einen Neuling.
- Wie wäre es mit einer genaueren Problembeschreibung?
(Der exakte Text der Fehlermeldung würde ggf.
helfen, auch etwas mehr Quelltext wäre nicht
verkehrt.)
Hier die Funktionen:
function genCell() {
theCell = document.createElement("td");
theCell.setAttribute("id","c1");
theText = document.createTextNode("Inhalt");
theCell.appendChild(theText);
document.getElementsByTagName("table")[0].rows[0].appendChild(theCell);
if (document.getElementById && !document.all)
{
document.getElementById('c1').setAttribute("onMouseOver","this.style.backgroundColor='red'")
}
if (document.all)
{
cellIE()
}
}
function cellIE() {
parts = document.all.c1.outerHTML.split(">");
cellCode = parts[0]+" onmouseover='this.style.backgroundColor=#FF0000'>"+parts[1]+">";
document.all.c1.outerHTML = cellCode;
}
Aufruf durch:
<a href="javascript:genCell()">mache Zelle</a>
Die Fehlermeldung lautet lediglich:
Zeile 26
Unbekannter Laufzeitfehler
In Zeile 26 steht:
cellCode = parts[0]+" onmouseover='this.style.backgroundColor=#FF0000'>"+parts[1]+">";
- Was meint Google zu Deiner Laufzeitfehlermeldung?
Google erzählt mir sehr viel zu Laufzeitfehlern im IE und SELFHTML weist darauf hin, dass die Änderung von innerHTML oder outerHTML nicht beim Öffnen des Dokumentes aufgerufen werden soll, sondern erst nach dem Laden desselben durch einen Link oder zeitverzögert mit setTimeout, da IE ansonsten einen Laufzeitfehler anzeigt. Ich rufe in meinem Script die oben stehenden Funktionen durch einen Link auf, also kann es daran nicht liegen. Außerdem habe ich auch schon versucht, die Funktion "cellIE()" zeitverzögert auszuführen - mit dem gleichen Ergebnis.
- Was sagt der Hersteller zu Deinem Problem?
Wenn Du damit Microsoft meinst: Die Hotline habe ich nicht angerufen und auf den FAQ-Seiten habe ich leider nichts darüber gefunden. Ich weiß aber, dass der Fehler nicht nur auf meinem Rechner auftritt!
Ich hoffe, dass ich mich jetzt verständlicher ausgedrückt habe und bitte nochmals um Hilfe.
Grüße
Sue
Hi Sue,
Ok, ich bin ja gern bereit zu lernen und mich
Euren Sitten hier anzupassen.
Fein.
function genCell() {
...
Auch fein.
Sorry, ich bin selbst nicht so der JavaScript-Mensch,
aber _jetzt_ halte ich Deine Problembeschreibung für
sehr gut - und hoffe, daß sich jemand meldet, der mehr
davon versteht als ich.
Sei aber nicht traurig, falls niemand etwas weiß -
Dein Problem ist ein typisches M$-closed-source-
Problem, es sind einfach nicht genügend Informationen
in Umlauf, um die Ursache systematisch zu debuggen.
<a href="javascript:genCell()">mache Zelle</a>
Die Fehlermeldung lautet lediglich:
Zeile 26
Unbekannter Laufzeitfehler
In Zeile 26 steht:
cellCode = parts[0]+" onmouseover='this.style.backgroundColor=#FF0000'>"+parts[1]+">";
Eieiei - das hilft natürlich nicht arg viel.
Hast Du irgendwie - auf anderen Rechnern - die Möglichkeit, zu prüfen, ob diese Fehler auch
in anderen M$IE-Versionen und Service Packs auftritt?
(Falls Du Deine Seite online stellen und den Link
hier veröffentlichen könntest, würden sich bestimmt
genügend Leute finden, die Dir dabei helfen können.)
Das mag keine Lösung für Dich sein, falls Du diesen
Code in einem WWW-Umfeld einsetzen willst.
Es hilft aber vielleicht, den Fehler einzuschränken
- Was meint Google zu Deiner
Laufzeitfehlermeldung?
Google erzählt mir sehr viel zu Laufzeitfehlern
im IE
Angesichts des kläglichen Fehlertextes ziehe ich die
Frage zurück. ;-)
und SELFHTML weist darauf hin, dass die
Änderung von innerHTML oder outerHTML
nicht beim Öffnen des Dokumentes aufgerufen
werden soll, sondern erst nach dem Laden
desselben durch einen Link oder zeitver-
zögert mit setTimeout, da IE ansonsten einen
Laufzeitfehler anzeigt.
Ich rufe in meinem Script die oben stehenden
Funktionen durch einen Link auf, also kann es
daran nicht liegen. Außerdem habe ich auch
schon versucht, die Funktion "cellIE()"
zeitverzögert auszuführen - mit dem gleichen
Ergebnis.
Puh - da kann ich nur sagen: Gut, daß Du jetzt das
Problem in dieser Ausführlichkeit beschreibst.
An Deiner Arbeitsmethodik liegt das Problem jeden-
falls bestimmt nicht ...
- Was sagt der Hersteller zu Deinem Problem?
Wenn Du damit Microsoft meinst: Die Hotline habe
ich nicht angerufen
Bei einem solchen Laufzeitfehler würde ich das aber
ggf. in Erwägung ziehen.
Vielleicht könnte Dir bei M$ jemand sagen, wie Du
Deinen M$IE so einstellen kannst, daß er ggf. eine
aussagekräftigere Meldung ausgibt - da mag es in
den Tiefen der Registry etc. ja vielleicht Möglich-keiten geben, von denen wir kaum etwas ahnen.
Jedenfalls müssen die M$-Entwickler eine bessere
Debugging-Möglichkeit haben als eine derartig nichts-
sagende Meldung.
Ich hoffe, dass ich mich jetzt verständlicher
ausgedrückt habe und bitte nochmals um Hilfe.
Hast Du - und ich drücke Dir die Daumen ...
Viele Grüße
Michael