Browser verliert Window (Popup) Name nach 700ms

Hallo,

Javascript:
function popup(action) {
  if (action == "open") {
    options = "resizable=1,scrollbars=1,toolbar=0,menubar=0,location=0,directory=0,width=140,height=140";
    popup_window = window.open("about:blank", "", options);
  } else {
    popup_window.close();
  }
}

Grüße,
Matthias
 
lol
das ist genau das was ich drüber hin beschrieben habe und das geht wie gesagt nicht, da die funktion die variable (in dem Fall popup_window) beim erneuten Aufruf wieder vergisst.


Die Funktion wird ja 2 mal angesprochen:
Einmal zum öffnen des fensters (open wird in der variable mit übergeben)
Einmal zum schließen des fensters (close wird in der variable mit übergeben)

Beim schließen wird ja Else ausgeführt und dort kennt er das Fenster nicht mehr
 
Hallo,

steyrblade hat gesagt.:
lol
das ist genau das was ich drüber hin beschrieben habe und das geht wie gesagt nicht, da die funktion die variable (in dem Fall popup_window) beim erneuten Aufruf wieder vergisst.
Du wolltest eine Funktion, die abhängig vom Parameter ein Popupfenster öffnet oder schließt. Die hast du auch bekommen. Wenn sie nicht funktioniert, machst du vermutlich bei der Verwendung einen Fehler.

Vielleicht hilft dir ja ein komplettes Beispiel weiter:
Code:
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="de">

  <head>
    <title>Popup</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="author" content="Matthias Reitinger" />
    <script type="text/javascript">
    // <![CDATA[
      function popup(action) {
        if (action == "open") {
          options = "resizable=1,scrollbars=1,toolbar=0,menubar=0,location=0,directory=0,width=140,height=140";
          popup_window = window.open("about:blank", "", options);
        } else {
          popup_window.close();        	
        }
      }
    // ]]>
    </script>
  </head>

  <body>
    <p>
      <button onclick="popup('open')">open</button>
      <button onclick="popup('close')">close</button>
    </p>
  </body>

</html>

Grüße,
Matthias
 
hmm habs grad bei mir privat auf meinen apache gehauen.....
tatsächlich funktioniert

Aber is schon komisch ich mach doch genau das gleiche.
Vielleicht liegts ja auch am Browser oder Server in meiner Firma.

Hab das jetzt mal genau so umgeschrieben wie ichs brauch und geht :)

Danke
 
Hi.
steyrblade hat gesagt.:
Also per Button starten und automatisch wieder schließen.
Mit settimeout simulier ich im prinzip meine lange lade Zeit.
Wobei auch im fertigen file ein timeout drin bleiben soll damit das fenster mindestens x sek aufbleibt

Das Fensterschließen funktioniert genau einmal :(
Beim zweiten mal schließt das fenster nicht mehr.
Natürlich nicht, du hast ja den Timeout auch nur beim Laden der Seite eingerichtet, und der wird dann nur einmal nach 4 Sek. ausgelöst. Du solltest den Timeout nur einrichten wenn du auch ein Popup geöffnet hast - also eigentlich beim Drücken des open Buttons.
steyrblade hat gesagt.:
Bzw. wenn ich dann durch einen close Button
(<button onclick="popup('close')">close</button>)
das Fenster versuche zu schließen ist popup_window wieder undefined.


Muss ich die variablen danach wieder unsetten oder woran liegts.
Also das sollte funktionieren. Bei mir tut es das auch. Ich bekomme nur eine popup_window undefined Errormeldung, wenn ich nicht binnen 4 Sek. das Popup geöffnet habe weil dann der Timeout ausgeführt wird.

Gruß
 
jo stimmt das mit dem Button geht
weiss auch nicht wieso das vorhin nicht mehr ging

Und das mit dem einmal fenster schließen ist mir dann auch klar geworden wieso es nicht mehr schließt. In dem Fall wird ja die Seite nicht neu geladen.
In meinem richtigen File wird die Seite nach betätigen des Buttons neu geladen.

In die Open Funktion soll es ja nicht rein.

Ich will mit betätigen des Buttons die Seite neu laden und wärend der Ladezeit das Popup fenster auflassen. Wenn das Parent fenster mit laden fertig ist soll das Fenster wieder schließen.

//edit

Achso jetzt ises mir klar

HTML:
<html>  
  <head>
    <title>Popup</title>   
   <script type="text/javascript">
      function popup(action) {
        //alert(action);
        if (action == "open") {
          options="resizable=1,scrollbars=1,toolbar=0,menubar=0,location=0,directory=0,width=140,height=140";
          popup_window = window.open("about:blank", "", options);
        } else {
          popup_window.close();
        }
      }
    </script>  
  </head>
  <body>
    <p>
      <a href='index.php?varx=1'>
      <img src='aktu.gif' alt='aktualisieren' border='0' onclick="popup('open')">
      </a>
    </p>    
    <script type="text/javascript">
    setTimeout("popup('close')",2000)
    </script>
  </body>
 </html>

Dadurch macht er das Popup auf und läd die Seite neu.
Nach dem neuladen hat er ja alle Werte verloren.
Manchmal sieht man den Wald vor lauter Bäumen nicht.

Kann ich der Parent Seite dann nach dem reload die variable für das Fenster wieder irgendwie zuweisen bzw. in dem link mit übergeben
 
Zurück