Sue: Immer noch: Laufzeitfehler bei 'outerHTML'-Änderung

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

  1. 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

    1. 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.

      1. 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.

      1. 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]+">";

      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.

      1. 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

      1. 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

        • etwa dadurch, daß er ab einem bestimmten Service
          Pack nicht mehr auftritt und dann ggf. irgendwo
          dokumentiert ist, welche Fehler durch dieses Service
          Pack behoben wurden.
          Und es könnte auch sein, daß irgend eine andere Ver-
          sion des M$IE eine aussagekräftigere Fehlermeldung
          von sich gibt ...
        1. 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 ...

        1. 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