Alex W.: IE 6.0 window.name = ?

Hallo,

mit IE 5.0 konnte ich wunderbar ein Fenster öffnen und mit einem Namen versehen, wie z.B.:
window.open('datei.htm','Fenster1','...');
Im Script konnte ich dann perfekt den Fensternamen ändern, mit dem Befehl "window.name", z.B.:
window.name = "Fenster2";
Nun funktioniert zwar das Fenster erstellen und Namen zuweisen, aber nicht mehr "window.name", versteh eigentlich nicht, warum IE 6.0 nicht abwärtskompatibel ist. Hm, gibt's da ne andere Funktion für?

Thanx, Alex

P.S.: Für Nährere Erläuterung den Unter-Thread lesen

  1. Als Erstes öffne ich ein Fenster:
    window.open('datei.htm','Fenster1','...');

    In der dieser Datei datei.htm ist folgender JavaScript-Code drin:
    window.name = "Fenster2";
    document.location.href="datei2.htm"

    In dieser "datei2.htm" befindet sich folgender Quellcode:
    if (window.name == "Fenster2"){ ... }
    else { top.location.replace("datei.htm"); }

    So, alles unter IE 6.0 geht das wunderbar, aber ab 6.0 scheint er das nicht zu machen:
    window.name = "Fenster2";
    Daraus resultiert eine Schleife:
    -> document.location.href="datei2.htm"
    -> if (window.name == "Fenster2")
    -> top.location.replace("datei.htm");
    ... und von da an wieder von vorne

    1. Als Erstes öffne ich ein Fenster:
      window.open('datei.htm','Fenster1','...');

      In der dieser Datei datei.htm ist folgender JavaScript-Code drin:
      window.name = "Fenster2";
      document.location.href="datei2.htm"

      In dieser "datei2.htm" befindet sich folgender Quellcode:
      if (window.name == "Fenster2"){ ... }
      else { top.location.replace("datei.htm"); }

      So, alles unter IE 6.0 geht das wunderbar, aber ab 6.0 scheint er das nicht zu machen:
      window.name = "Fenster2";
      Daraus resultiert eine Schleife:
      -> document.location.href="datei2.htm"
      -> if (window.name == "Fenster2")
      -> top.location.replace("datei.htm");
      ... und von da an wieder von vorne

      Hallo Alex

      Du willst wohl, dass niemand auf datei2.htm kommt, der nicht zuvor auf datei.htm war?
      Gib Dir mal in datei2.htm window.name aus:
           alert(window.name)
      Kommt da "Fenster1" oder was anderes?

      1. Hallo Alex

        Hallo Konrad!

        Du willst wohl, dass niemand auf datei2.htm kommt, der nicht zuvor auf datei.htm war?

        Genau!

        Gib Dir mal in datei2.htm window.name aus:
             alert(window.name)

        Mach ich doch gern!

        Kommt da "Fenster1" oder was anderes?

        Korrekt, bei IE 6.0 kommt da "Fenster1"! Bei IE Versiosch zwischen 4.1 und 5.5 "Fenster2".

        1. Hallo Alex,

          Das ist ja höchst bedenklich. Mach mal ein paar ganz einfache Dateien, die nur das erwähnte Skript drin haben. Wenn es dann immer noch nicht klappt, sieht das für mich sehr nach einem Bug im browser aus.
          Versuch auch mal, die Seite erst nach ein paar Milisekunden zu laden
          window.setTimeOut("document.location.href='datei2.htm'",100);
          (keine gewähr für richtige Syntax)

          1. Das ist ja höchst bedenklich. Mach mal ein paar ganz einfache Dateien, die nur das erwähnte Skript drin haben.

            habe ich, sogar bei 2 verschiedenen Seiten.

            Wenn es dann immer noch nicht klappt, sieht das für mich sehr nach einem Bug im browser aus.

            Meine ich ja, im IE 6.0 scheint window.name gar nicht mehr zu funktionieren, darum habe ich nach einer Alternative gefragt.

            Versuch auch mal, die Seite erst nach ein paar Milisekunden zu laden

            Lädt ja erst später, war nur grob der Script.

  2. Hallo Alex,

    P.S.: Für Nährere Erläuterung den Unter-Thread lesen

    Was ist an diesem Abschnitt in der FAQ unverständlich?

    </faq/#Q-11>

    Ich frage, weil über kurz oder lang eh eine Revision der FAQ, um diese auf den
    aktuellsten Stand zu bringen. Da kann man gleich die Qualität des Textes an
    Leute mit kognitiven Einschränkungen anpassen.

    • Tim
    --
    Definiere "Signatur"!
    MI
    1. möcht gern wissen, wer die FAQs komplett durchliest, des weiteren hilft mir das aber nicht weiter, weil solche Beiträge eben äußerlich eine Frage als "erledigt" erscheinen lässt, jedoch sie nicht ist, sondern nur mit stupiden Kommentaren versehen! DANKE!

  3. Hallo Alex,

    Bitte keine Doppelpostings!
    Dein anderer Thread ist nur wenige Stunden alt:[http://forum.de.selfhtml.org/my/?t=38975&m=213541]

    Danke und Grüße
    Thomas

    1. Ja :( aber da schreibt keiner mehr.

  4. Hallo Alex,

    mit IE 5.0 konnte ich wunderbar ein Fenster öffnen und mit einem Namen versehen, wie z.B.:
    window.open('datei.htm','Fenster1','...');
    Im Script konnte ich dann perfekt den Fensternamen ändern, mit dem Befehl "window.name", z.B.:
    window.name = "Fenster2";
    Nun funktioniert zwar das Fenster erstellen und Namen zuweisen, aber nicht mehr "window.name", versteh eigentlich nicht, warum IE 6.0 nicht abwärtskompatibel ist. Hm, gibt's da ne andere Funktion für?

    Ich kann den Bug bestätigen. Innerhalb eines mittels window.open geöffneten Fensters merkt sich der IE nur innerhalb des Dokumentes den Fensternamen. Nachfolgende Dokumente werden ignoriert. Folgende Alternativen sind möglich:

    Du läßt den Fensternamen wie er ist und überprüfst mittels der Opener-Eigenschaft, ob ein Fenster geöffnet wurde:

    also: if (opener) {

    } else {}

    Damit wird sogar deine Dateí.htm überflüssig.

    Variante 2:

    Du änderst den Fensternamen des Openers:

    if (opener) opener.window.name = "Fenster2";

    und fragst diesen Fensternamen ab:

    if (opener && opener.window.name == "Fenster2"){
    ...
    }
    else {

    ...

    }

    Viele Grüße

    Antje