Fabian: getElementById() geht im Firefox nicht

Hallo,

Folgendes:
Ich habe eine Seite in Zwei Frames aufgeteilt. Im ersten Frame gibt es ein <DIV id="Index1">text</DIV>.

Ich möchte nun aus dem zweiten Frame mittels onMouseOver und JavaScript auf das Element im 1. Frame zugreifen :

parent.titel.document.getElementById("Index1").innerText;

Firefox liefert beim ersten Zugriff ein 'undefined' zurück und schafft es erst beim wiederholten Aufruf, den korrekten Wert zu liefern.

Definiert man ein zweites <DIV> und verucht dort mit dem selben Mechanismus (natürlich andere id) auf innerText zuzgreifen, steht beim ersten Aufruf der alte Wert vom vorherigen <DIV> im Ergebnis. Erst beim wiederholten Aufruf kommt der korrekte Wert.

Ein Bug im Feuerfuchs?

Viele Grüsse,
Fabian

P.S.: dasselbe Ergebnis gibt es auch mit
top.titel.document.getElementById('Index1').innerText;

  1. hi,

    Ich möchte nun aus dem zweiten Frame mittels onMouseOver und JavaScript auf das Element im 1. Frame zugreifen :

    parent.titel.document.getElementById("Index1").innerText;

    Firefox liefert beim ersten Zugriff ein 'undefined' zurück und schafft es erst beim wiederholten Aufruf, den korrekten Wert zu liefern.

    Hast du sichergestellt, dass du mit diesem Zugriff wartest, bis der Inhalt in diesem anderen Frame auch fertig geladen und gerendert ist?

    Definiert man ein zweites <DIV> und verucht dort mit dem selben Mechanismus (natürlich andere id) auf innerText zuzgreifen, steht beim ersten Aufruf der alte Wert vom vorherigen <DIV> im Ergebnis. Erst beim wiederholten Aufruf kommt der korrekte Wert.

    Ein Bug im Feuerfuchs?

    Klingt zumindest mysteriös.
    Aber vermutlich liegt der Fehler doch eher irgendwo in deinem Code - vielleicht zeigst du uns ihn mal?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hast du sichergestellt, dass du mit diesem Zugriff wartest, bis der Inhalt in diesem anderen Frame auch fertig geladen und gerendert ist?

      Ja. Die Seite ist statisch und liegt bei mir ohnehin lokal auf dem Rechner. Sie ist auch längst aufgebaut, wenn ich im 2. Frame ein onMouseOver mache. Im IE gehts ja auch.

      Klingt zumindest mysteriös.
      Aber vermutlich liegt der Fehler doch eher irgendwo in deinem Code - vielleicht zeigst du uns ihn mal?

      Ja, kann ich machen. Die Code ist zwar einfach, aber ziemlich umfangreich (6000 <DIV>'s). Denn kann ich hier aber schlecht reinstellen, oder?

      1. Hallo Fabian,

        Ja, kann ich machen. Die Code ist zwar einfach, aber ziemlich umfangreich (6000 <DIV>'s). Denn kann ich hier aber schlecht reinstellen, oder?

        Aber ein relevantes auf den Kern der Sache reduziertes Beispiel wäre doch denkbar, oder?

        Mit freundlichem Gruß
        Micha

        --
        LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript || JS Tetris :: für zwischendurch
      2. Hello out there!

        6000 <DIV>'s

        Du leidest an akuter Divitis, dazu auch noch an Apostrophitis.

        Beides ist heilbar, auch wenn die Divitis schon ein bedenklich fortgeschrittenes Stadium erreicht hat.

        Gute Besserung! ;-)

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
        1. Hello out there!

          6000 <DIV>'s

          Du leidest an akuter Divitis, dazu auch noch an Apostrophitis.

          Beides ist heilbar, auch wenn die Divitis schon ein bedenklich fortgeschrittenes Stadium erreicht hat.

          Ich kann mir das erlauben. Ich progranmmiere ja auch kein gewöhnliches HTML. :-)
          Meine Anwendung ist im Prinzip eine Native-Applikation (die nur intern von einigen Leuten genutzt wird), aber ich will von der Native-Programmierung weg, weil sich mit PHP doch eine ganze Menge machen lässt. Ich benutze den Browser nur als graphisches Frontend, erspare mir aber das ganze Grafik-Kontext-Handling und komplizierte Listener-Registrierungen in C/C++, Java, Delphi, NET oder was weichichnoch. Das graphische Frontend ist der Browser, dem ich meine Info einfach per dicker HTML-Seite übergebe. Wozu noch aufwendig selbst programmieren, wenn der Browser mir das alles schon betriebssystemsepzifisch zur Verfügung stellt?
          Klar, es fällt natürlich ein riesiger Overhead an Daten an. Aber wen interessierts? Im internen Netz keinen und wenn unbedingt nötig, installiere ich jedem User einen ApacheServer auf den lokalen Rechner.

          Pfiffig, wa?

          Gruss,
          Fabian

  2. Ich habe eine Seite in Zwei Frames aufgeteilt. Im ersten Frame gibt es ein <DIV id="Index1">text</DIV>.

    Ich möchte nun aus dem zweiten Frame mittels onMouseOver und JavaScript auf das Element im 1. Frame zugreifen :

    parent.titel.document.getElementById("Index1").innerText;

    Firefox liefert beim ersten Zugriff ein 'undefined' zurück und schafft es erst beim wiederholten Aufruf, den korrekten Wert zu liefern.

    Seit wann kann FF innerText?

    Struppi.

    --
    Javascript ist toll (Perl auch!)
  3. Hi,

    Ein Bug im Feuerfuchs?

    Nein.

    top.titel.document.getElementById('Index1').innerText;

    Verwende innerHTML und entferne HTML-Code manuell (sofern überhaupt vorhanden).

    Alternativ: Bringe dem Firefox innerText bei (InnerHTML Model).

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Verwende innerHTML und entferne HTML-Code manuell

      Schon versucht. Funktioniert aber auch nicht, innerHTML kennt er gar nicht.

      1. Hi,

        Verwende innerHTML und entferne HTML-Code manuell
        Schon versucht. Funktioniert aber auch nicht, innerHTML kennt er gar nicht.

        Dann machst Du was falsch, oder verwendst eine Spezialversion des Firefox. Die einzige Version, die innerHTML nicht kennt! Dann sollte der Programmierer allerdings auch nicht lügen, und sein Produkt fälschlicherweise "Firefox" nennen - ich schlage "Nutznix" vor. >;->

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!