zag: IE macht seltsame Sachen bei innerhtml-Aufruf

Tach,

habe folgendes Problem:

Der IE löscht bei Aufruf der folgenden Funktion:

function SNT(xa,e){document.getElementById('NavText').innerHTML= "Text und Bild"+xa;}

den Inhalt einiger nachfolgender <div> und zwar aller die innerhalb des nächsten liegen, d.h.

<div>bla<div>blub</div></div>
--> blub verschwindet!

obwohl das Element 'NavText' in einer anderen Zelle der Tabelle liegt:
<td id="NavText">hier eben</td>

Firefox schafft es, das blub weiterhin unberührt anzuzeigen!

Weiß jemand Hilfe?

  1. hi,

    Weiß jemand Hilfe?

    bei so einer unvollständigen problembeschreibung?

    du verrätst uns ja nicht mal, was du als wert für den parameter xa an die funktion übergibst - also könnte das auch der hanebüchenste unsinn sein ...

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      Weiß jemand Hilfe?

      bei so einer unvollständigen problembeschreibung?

      du verrätst uns ja nicht mal, was du als wert für den parameter xa an die funktion übergibst - also könnte das auch der hanebüchenste unsinn sein ...

      gruß,
      wahsaga

      »»

      Das ist wahr...

      xa ist Text

      sollte damit die Problembeschreibung noch wirklich unvollständig sein?

      Nochmals-Versuch:

      function SNT(xa){document.getElementById('NavText').innerHTML= "Text und Bild"+xa;}

      <table>
      <tr>
        <td id="NavText">hier Text1</td>
        <td><div id="nummer1">blah<div id="nummer2">blub</div></div></td>
        <td><a href="#" onMouseOver="SNT('Beispieltext');">Hallo</a></td>
      </tr>
      </table>

      Falls jemand das "e" von vorher sucht, das fehlt weil es nichts zur Sache tut :-)

      Hoffe so ist es klarer.

      wenn also die Funktion SNT aufgerufen wird, ändert sich der Text in "NavText" wie vorgesehen und löscht das blub aus "nummer2" wie nicht vorgesehen!

      1. Hallo,

        function SNT(xa){document.getElementById('NavText').innerHTML= "Text und Bild"+xa;}

        <table>
        <tr>
          <td id="NavText">hier Text1</td>
          <td><div id="nummer1">blah<div id="nummer2">blub</div></div></td>
          <td><a href="#" onMouseOver="SNT('Beispieltext');">Hallo</a></td>
        </tr>
        </table>

        wenn also die Funktion SNT aufgerufen wird, ändert sich der Text in "NavText" wie vorgesehen

        Ja, das stimmt

        und löscht das blub aus "nummer2" wie nicht vorgesehen!

        Nein, das kann ich weder mit dem IE noch mit dem FF-Browser nachvollziehen. Beide liefern bei obrigen Bsp das selbe.

        Mit freundlichem Gruß
        Micha

        1. Nein, das kann ich weder mit dem IE noch mit dem FF-Browser nachvollziehen. Beide liefern bei obrigen Bsp das selbe.

          Mit freundlichem Gruß
          Micha

          Hier mal das Live-Beispiel:

          http://www.zefki.de/newsite_afo/exh_alt.html

          wenn man mit der Maus über die netten bunten Quadrate auf der rechten Seite fährt, verschwinden die Bildchen im IE.
          Das tun sie aber im FF nicht.

          Oder kannst du sie auch im IE danach noch sehen?

          1. Hallo,

            Auf http://www.zefki.de/newsite_afo/exh_alt.html sehe ich Dein Problem.

            An der JS Funktion liegt es aber nicht, da Dein gekürztes Bsp ja funktioniert.

            Mit freundlichem Gruß
            Micha

            1. Hallo,

              Auf http://www.zefki.de/newsite_afo/exh_alt.html sehe ich Dein Problem.

              An der JS Funktion liegt es aber nicht, da Dein gekürztes Bsp ja funktioniert.

              Mit freundlichem Gruß
              Micha

              Ja leider. Die Funktion ist ja auch auf den darüber liegenden Seiten völlig i.O.
              Der einzige Unterschied ist die Verschachtelung der <div>
              Auf den Seiten auf denen das ganze funktioniert, gibt es eben nur eines, das wiederum eine Tabelle enthält.
              Auf der Seite auf der es nicht funktioniert gibt es innerhalb der Tabelle noch eines und darin noch eines.
              Verwirrend: Die Anzeige der Seite beim ersten Aufruf geht, da sollte man meinen, dass alles stimmt. aber warum dann der einfluss der Funktion auf eine völlig andere Zelle?
              Es liegt definitiv an der Verschachtelung der <div>-Elemente und des in diesem Zusammenhang erwähnten innerHTML Aufrufs. Das habe ich soweit getestet.
              Um einen Ausweg wäre ich echt dankbar.

              1. Hallo,

                Der einzige Unterschied ist die Verschachtelung der <div>

                Nicht nur die sind bis zur Unkenntlichkeit verschachtelt...

                aber warum dann der einfluss der Funktion auf eine völlig andere Zelle?

                Macht sie eigentlich nicht. Wenn Du Dir mal den Inhalt des Divs ansiehst, in dem alles Verschwindet, ist er immernoch vorhanden - auch im IE.

                Mit freundlichem Gruß
                Micha

                1. Macht sie eigentlich nicht. Wenn Du Dir mal den Inhalt des Divs ansiehst, in dem alles Verschwindet, ist er immernoch vorhanden - auch im IE.

                  Sorry aber da hängt mein Hirn.....?
                  Ich kann nix sehen und das ist das Problem - wo soll ich denn schauen?

                  Grüße

                  1. Hallo,

                    Sorry aber da hängt mein Hirn.....?
                    Ich kann nix sehen und das ist das Problem - wo soll ich denn schauen?

                    In dem Du dem DIV eine ID gibst und es mit einem alert mal ausgeben lässt.

                    Mit freundlichem Gruß
                    Micha

                    1. In dem Du dem DIV eine ID gibst und es mit einem alert mal ausgeben lässt.

                      Stimmt, da isses, aber irgendwie nicht sichtbar =? leer?

                      Ich werd halt mal weiter suchen und versuchen.

                      Danke für die Mühen....

            2. hi,

              Auf http://www.zefki.de/newsite_afo/exh_alt.html sehe ich Dein Problem.

              kann ich mit dem IE 5.01 da auch nicht nachvollziehen.

              An der JS Funktion liegt es aber nicht

              die ist aber trotzdem recht übel; einiges mit dem holzhammer umgesetzt, anstatt über's DOM zu gehen, zum einblenden von text wird innerHTML = " <font ...>text</font>" verwendet, etc.

              da würde ich doch ebenso wie in diesem thread eine reine CSS-lösung vorschlagen.

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
              1. hi,

                Auf http://www.zefki.de/newsite_afo/exh_alt.html sehe ich Dein Problem.

                kann ich mit dem IE 5.01 da auch nicht nachvollziehen.

                An der JS Funktion liegt es aber nicht

                die ist aber trotzdem recht übel; einiges mit dem holzhammer umgesetzt, anstatt über's DOM zu gehen, zum einblenden von text wird innerHTML = " <font ...>text</font>" verwendet, etc.

                da würde ich doch ebenso wie in diesem thread eine reine CSS-lösung vorschlagen.

                gruß,
                wahsaga

                Schön, dass dir das Auffällt. Ich hatte schon befürchtet, du würdest es übersehen.

      2. Hi

        hi,

        Weiß jemand Hilfe?

        bei so einer unvollständigen problembeschreibung?

        du verrätst uns ja nicht mal, was du als wert für den parameter xa an die funktion übergibst - also könnte das auch der hanebüchenste unsinn sein ...

        Ich habe bisher unter Netscape, Mozilla, Firefox, Opera die Feststellung gemacht, daß diese Browser mit leichteren Javascript-Fehlern sehr gnädig umgehen, der IE hingegen nicht. Ein Komma zuviel an bestimmten Stellen beeinträchtigen nicht den Ablauf unter den erstgenannten Brosern, der IE verweigert hingegen seinen Dienst.

        Hier noch eine andere Feststellung:

        if (!parent.toc.getHref) {
            window.setTimeout ("checkhdl()",hdlDelay);
            return '';
          }

        "getHref" ist eine Javascript-Funktion im Frame "toc", die von einem anderen Frame aus aufgreufen wird. Die Abfrage mit "parent.toc.getHref" liefert bei den erst genannten Browsern einwandfreie Ergebnisse, nicht aber bei IE!!!!

        So hab ich die Funktion abgewandelt, damit sie auch unter IE funktioniert:

        var checkToc=(parent.toc.getHref)?true:false;
          if (!checkToc) {
            window.setTimeout ("checkhdl()",hdlDelay);
            return '';
          }

        Das klingt widersinnig, ist aber so!!!

        Gruß f