Kube: location.href im IE5.0

Hallo allerseits,

ich weise per JS einem Framefenster eine neue Ressource zu mit [frame].location.href = ...
Der IE5.0 reagiert allerdings nicht darauf. Keine Fehlermeldung, kein Ladebalken, Nichts!
Hat jemand eine Idee, woran das liegen könnte?

Gruss
Kube

  1. hi,

    ich weise per JS einem Framefenster eine neue Ressource zu mit [frame].location.href = ...

    unsauber. Korrekt: top.FRAMNAME.location.href="...";

    Der IE5.0 reagiert allerdings nicht darauf. Keine Fehlermeldung, kein Ladebalken, Nichts!

    Wie sieht der Ruf aus?

    Gruss  Joachim

    1. Hallo Joachim

      ich weise per JS einem Framefenster eine neue Ressource zu mit [frame].location.href = ...

      unsauber. Korrekt: top.FRAMNAME.location.href="...";

      Witzbold!
      "..." ist ja wohl keine gültige URL, oder?
      Und mein Frame heisst weder FRAMNAME noch ist er ein Unterframe von top!
      :-)

      Der IE5.0 reagiert allerdings nicht darauf. Keine Fehlermeldung, kein Ladebalken, Nichts!

      Wie sieht der Ruf aus?

      Die Url? Die Javascriptzeile?

      Also folgende Situation:
      Das Javascript steht im Frameset, der betreffende Frame heisst "inhalt" und die betreffende Zeile ist:
      inhalt.location.href="http://meine.interne.url.de?meine=parameter";
      (naja so ähnlich jedenfalls)

      inhalt, inhalt.location und inhalt.location.href sind definiert.

      Da es in vielen anderen Browsern funktioniert (N4.7, NS6, NS7, Opera, IE5.5, IE6) vermute ich das Problem eher nicht in meinem Code.

      Gruss,
      Kube

      1. hi,

        Und mein Frame heisst weder FRAMNAME noch ist er ein Unterframe von top!

        jeder frame ist ein Unterframe von top. RTFineM.

        Wie sieht der Ruf aus?
        Die Url? Die Javascriptzeile?

        Selber Witzbold. Wie/wo rufst Du die Funktion auf, die die Eigenschaft "location.href" zuweist?

        Gruesse  Jo

        1. Hallo,

          Und mein Frame heisst weder FRAMNAME noch ist er ein Unterframe von top!

          jeder frame ist ein Unterframe von top. RTFineM.

          Das gilt nur, wenn top das betrefende Frameset ist. In meinem Fall ist dem nicht so.
          Was soll denn das für ein tolles FineM sein?

          Wie sieht der Ruf aus?
          Die Url? Die Javascriptzeile?

          Selber Witzbold. Wie/wo rufst Du die Funktion auf, die die Eigenschaft "location.href" zuweist?

          in einer Funktion am Frameset, aufgerufen durch ein Event am Unterframe namens inhalt.

          *grübel*
          Kube

          1. hi,

            Das gilt nur, wenn top das betrefende Frameset ist. In meinem Fall ist dem nicht so.
            Was soll denn das für ein tolles FineM sein?

            RTFineM: Read the fine Manual
            http://selfhtml.teamone.de/javascript/objekte/frames.htm
            Das was Du dringend tun solltest, um zu lernen, dass "top" das oberste Element in der Hirarchie repraesentiert. Dementsprechend lautet die korrekte Framereferenzierung top.inhalt, bzw parent.inhalt, wenn man ueber das Elternelement geht.

            in einer Funktion am Frameset, aufgerufen durch ein Event am Unterframe namens inhalt.

            Wenn Du also die korrekte Frame-Referenzierung getestet hast, und das Problem weiterhin besteht, waere es eventuell eine gute Idee, sowohl die komplette Funktion, als auch die eventregistrierung zu posten (oder online zum Ansehen zu stellen)

            Gruss  Joachim

            1. Hallo,

              Das was Du dringend tun solltest, um zu lernen, dass "top" das oberste Element in der Hirarchie repraesentiert. Dementsprechend lautet die korrekte Framereferenzierung top.inhalt, bzw parent.inhalt, wenn man ueber das Elternelement geht.

              Verdammich! Rede ich schwedisch?
              Von inhalt aus gesehen ist top != parent.
              top.inhalt ist deshalb nicht definiert. Nirgendwo! (mal abgesehen vom Opera mit den bekannten JS-Schwächen)

              » Wenn Du also die korrekte Frame-Referenzierung getestet hast, und das Problem weiterhin besteht, waere es eventuell eine gute Idee, sowohl die komplette Funktion, als auch die eventregistrierung zu posten (oder online zum Ansehen zu stellen)
              online geht leider nicht. Und bei dem Quellcode blickt sowieso niemand durch, ich müsste so 5-6 ellenlange Funktionen posten.

              Trotzdem danke,
              Kube

              1. Von wo aus willst Du denn den Inhalt ändern? Per Klick von einem anderen Framefenster? Per Countdown im eigenen Inhalt? Oder vielleicht sogar von der Seite aus, in der Du die Framesets vorgenommen hast?

                Bye; Alex

                1. Von wo aus willst Du denn den Inhalt ändern? Per Klick von einem anderen Framefenster? Per Countdown im eigenen Inhalt? Oder vielleicht sogar von der Seite aus, in der Du die Framesets vorgenommen hast?

                  in einer Funktion am Frameset. Ja. Nein. Da ist der Event-Handler, meine Funktion ist am Frameset.

                  Gruss,
                  Kube

                  1. Von wo aus willst Du denn den Inhalt ändern? Per Klick von einem anderen Framefenster? Per Countdown im eigenen Inhalt? Oder vielleicht sogar von der Seite aus, in der Du die Framesets vorgenommen hast?

                    in einer Funktion am Frameset. Ja. Nein. Da ist der Event-Handler, meine Funktion ist am Frameset.

                    Wenn man dich bisher richtig versteht, dann sieht dein Frameset so aus:

                    <framset rows="...">
                    <frame src=".." name="inhalt">
                    <frame src=".." name="xyz">
                    </frameset>

                    wenn deine Funktion "am" frameset ist (wenn es heißen soll, in der Datei, in der das Frame definiert wird), dann lautet dich richtige Referenzierung:
                    window.inhalt.location.href="";

                    Aber, kann es evtl sein, dass  inhalt schon belegt ist?

                    Lass dir mal ausgeben was inhalt ist:
                    alert(typeof inhalt);

                    evtl. hast du ein Element in deinem Dokument mit dem Namen 'inhalt'

                    struppi.

                    1. Hallo,

                      <framset rows="...">
                      <frame src=".." name="inhalt">
                      <frame src=".." name="xyz">
                      </frameset>

                      so in der art.

                      Lass dir mal ausgeben was inhalt ist:
                      alert(typeof inhalt);

                      ein objekt vom typ window.

                      evtl. hast du ein Element in deinem Dokument mit dem Namen 'inhalt'

                      nein, das ist es nicht.

                      ich habe inzwischen den Fehler eingegrenzt. Die Funktion zur Änderung des Inhaltes ist an sich in Ordnung. Der Eventhandler, der das ganze anwirft, ist aber an einem a-Element notiert, also so:

                      <a href="#" onClick="parent.laden(event)">
                        <img...>
                      </a>

                      so gehts anscheinend nicht. Obwohl die Funktion laden() tatsächlich aufgerufen wird.

                      Wenn ich dieses hier probiere:

                      <img onClick="parent.laden(event)">

                      also ohne das a-element, gehts wie gewünscht.

                      *grübel*
                      Kube

                      1. ich habe inzwischen den Fehler eingegrenzt. Die Funktion zur Änderung des Inhaltes ist an sich in Ordnung. Der Eventhandler, der das ganze anwirft, ist aber an einem a-Element notiert, also so:

                        <a href="#" onClick="parent.laden(event)">
                          <img...>
                        </a>

                        Was ist denn event?
                        Das existiert nicht.

                        so gehts anscheinend nicht. Obwohl die Funktion laden() tatsächlich aufgerufen wird.

                        Wenn ich dieses hier probiere:

                        <img onClick="parent.laden(event)">

                        also ohne das a-element, gehts wie gewünscht.

                        Auch da sollte event nicht definiert sein.

                        oder meinst du das globale Objekt window.event? Das brauchst du aber nicht als Parameter übergeben.

                        Ein bisschen Debuggingarbeit sollte doch ohne Probleme deine Lösung finden.

                        Lass dir mal alles ausgeben was du benutzt (mit alert()), dann sollte es doch möglich sein so einen kicki kram hinzu kriegen.

                        Das ist ein Ratespiel.
                        Mit immer nur einer kleinen Scheibe deines geheimnisvollen Codes (weil eine Standardsache nicht funktionieren soll), kann man dir nur schwer helfen.

                        Struppi.

                        1. Hallo,

                          <a href="#" onClick="parent.laden(event)">
                            <img...>
                          </a>

                          Was ist denn event?
                          Das existiert nicht.

                          doch, im NS4.7

                          Mit immer nur einer kleinen Scheibe deines geheimnisvollen Codes (weil eine Standardsache nicht funktionieren soll), kann man dir nur schwer helfen.

                          schon gut, ich werde die ganze Sache mal anders angehen.

                          thx,
                          Kube

                          1. Was ist denn event?
                            Das existiert nicht.

                            doch, im NS4.7

                            nein, das siehst du falsch.

                            Lies nochmal das Kapitel (auf das du dich vermutlich beziehst) bei selfhtml:
                            http://selfhtml.teamone.de/javascript/objekte/event.htm

                            Das event steht für den Parameter, den ein onmouse..(oder onkey...)-event feuert. Bei dir steht es für eine nicht definierte Variabel.

                            Struppi.

                            1. Lies nochmal das Kapitel (auf das du dich vermutlich beziehst) bei selfhtml:

                              falls du ihn gelesen hast, dann hast du ihn falsch interpretiert.
                              Probiere folgendes im Netscape 4.7 aus
                              <a href="#" onClick="alert(event)">test</a>

                              Das event steht für den Parameter, den ein onmouse..(oder onkey...)-event feuert. Bei dir steht es für eine nicht definierte Variabel.

                              Parameter? Du meinst Funktionsargument.

                              <Zitat aus="SelfHTML">
                              function TasteGedrueckt(Ereignis)
                              {
                               if(Netscape)
                                { window.status = "Taste mit Dezimalwert " + Ereignis.which + " gedrueckt"; return true; }
                              }
                              </Zitat>

                              Das event-Objekt wird an die Variable Ereignis übergeben, die m.E. auch event heissen kann.

                              gell?
                              Kube

                              1. Lies nochmal das Kapitel (auf das du dich vermutlich beziehst) bei selfhtml:

                                falls du ihn gelesen hast, dann hast du ihn falsch interpretiert.
                                Probiere folgendes im Netscape 4.7 aus
                                <a href="#" onClick="alert(event)">test</a>

                                Du hast recht. Das war mir neu.

                                Ich ging davon aus, das dieses Objekt nicht direkt zu Verfügung steht, sondern automatisch als Parameter der Gewünschten Funktion übergeben wird.

                                document.onclick = test;

                                function test(e)
                                {
                                   alert(typeof e);
                                }

                                Das event steht für den Parameter, den ein onmouse..(oder onkey...)-event feuert. Bei dir steht es für eine nicht definierte Variabel.
                                Parameter? Du meinst Funktionsargument.

                                Ein Parameter für ein Funktion, ja. ist da ein Unterschied?

                                <Zitat aus="SelfHTML">
                                function TasteGedrueckt(Ereignis)
                                {
                                 if(Netscape)
                                  { window.status = "Taste mit Dezimalwert " + Ereignis.which + " gedrueckt"; return true; }
                                }
                                </Zitat>

                                Das event-Objekt wird an die Variable Ereignis übergeben, die m.E. auch event heissen kann.

                                Offensichtlich sogar heissen muss, wenn man die Events im HTML Code einbeteten möchte.

                                Mal wieder was gelernt, danke.

                                Struppi.

                      2. hi,

                        <a href="#" onClick="parent.laden(event)">
                          <img...>
                        </a>

                        deswegen wollte ich den Aufruf: return false fehlt! Also:

                        onClick="parent.laden(event); return false;"

                        Gruesse  Jo

                        1. Hi Jo

                          deswegen wollte ich den Aufruf: return false fehlt! Also:

                          sorry, da hätte ich den Bug nie vermutet.

                          onClick="parent.laden(event); return false;"

                          jawoll, das wars! :-)

                          danke schön,
                          Kube