kalihu: window.open und *.close

Hallo!

Da ich mich mit JavaScript erst seit kurzem beschäftige habe ich noch Kinderkrankheiten zu bekämpfen aber für dich wird die Lösung sicher kein Problem sein.

Folgendes: ich will ein Fenster öffnen und dieses wieder schließen. Eigentlich keine große Sache!

Hierzu mein verwendeter script der beim Schließen des Fensters "datei2.htm" den Fehler "Zeile: 0 Fehler:'MeinFenster' ist undefiniert" erzeugt.

DATEI 1
<html><head><title>Test</title>
<script type="text/javascript">
<!--
function NeuFenster() {
var MeinFenster = window.open("datei2.htm", "Zweitfenster", "width=300,height=200,scrollbars");
}
//-->
</script></head><body>
<a href="javascript:NeuFenster()">datei2</a>
</body></html>

DATEI 2
<html><head><title>datei2</title>
<script type="text/javascript">
</script>
</head>
<body>
<p>datei2</p>
<a href="javascript:MeinFenster.close()">Fenster zumachen</a>
</body></html>

Besten Dank
Kalihu

  1. Hallo!

    var MeinFenster = window.open("datei2.htm", "Zweitfenster", "width=300,height=200,scrollbars");

    ^^^^^^^^^^^^^

    Der Name des Fensters ist Zweitfenster, MeinFenster ist lediglich eine Variable.

    Gruß Markus

    1. Hallo!

      var MeinFenster = window.open("datei2.htm", "Zweitfenster", "width=300,height=200,scrollbars");
                                                      ^^^^^^^^^^^^^

      Der Name des Fensters ist Zweitfenster, MeinFenster ist lediglich eine Variable.

      Gruß Markus

      Hierzu möchte ich anmerken:

      "Zweitfenster" ist der HTML-Name des Fensters, d.h. mit target="Zweitfenster" kann man Links im alten Fenster ins neue umleiten.

      Javascript kennt "Zweitfenster" aber nicht, sondern im alten Fenster nur "MeinFenster". Im neuen Fenster kennt Javascript "MeinFenster" nicht.

      Um nun auch im neuen Fenster oder in irgendeinem anderen Fenster oder Frameset auf dieses Fenster zurückgreifen zu können, muß man im jeweiligen Fenster mit
      MeinNeuesFenster = window.open("","Zweitfenster");
      die Verknüpfung von HTML-Fenster-Name und der neuen Javascript-Variablen MeinNeuesFenster schaffen. Danach kann man mit MeinNeuesFenster.location.href z.B. die URL per Javascript ändern, oder mit
      MeinNeuesFenster.close();
      es unter Umständen auch schließen (evtl. gibts eine Sicherheitsfrage, die man dann auch nicht umgehen kann).

      Das nur zur Info - hatte es unlängst in der Archivsuche ausgegraben. :)

      - Sven Rautenberg

  2. schreib doch einfach
    self.close()
    oder
    window.close()
    oder
    top.close()

    1. schreib doch einfach
      self.close()
      oder
      window.close()
      oder
      top.close()

      Besten Dank Franzi. Wie einfach es doch ist wenn man es weiß!!
      Kalihu

  3. Moin!

    Folgendes: ich will ein Fenster öffnen und dieses wieder schließen. Eigentlich keine große Sache!
    Hierzu mein verwendeter script der beim Schließen des Fensters "datei2.htm" den Fehler "Zeile: 0 Fehler:'MeinFenster' ist undefiniert" erzeugt.

    Logisch, denn MeinFenster gibt es ja nur in der ersten Datei. In der zweiten dagegen wurde diese Variable nie definiert. Du kannst zwar ueber opener (huch? steht ja gar nicht in SelfHTML? Aber hier: http://developer.netscape.com/docs/manuals/js/client/jsref/window.htm#1202911) diese Variable wieder erreichen (window.opener.MeinFenster), aber sinnvoller ist der Vorschlag von Franzi. Mit window greifst Du immer auf das aktuelle Fenster (oder aktuellen Frame) zu. Somit ist also window im neuen Fenster und MeinFenster im alten Fenster genau dasselbe.

    Der Hinweis von Markus ist zwar richtig, aber der Sache nicht dienlich, da Du ueber den Fensternamen nicht auf das Fenster zugreifen kannst. Dafuer brauchst Du eine Fenstervariable, eben das MeinFenster im ersten Fenster, oder window, das in jeder Situation die Fenstervariable fuer das aktuelle Fenster ist.

    So long