POPUp soll nur einmal laden

Eiszwerg

Erfahrenes Mitglied
Guten Tag,

ich habe folgendes Problem:

Meine Hauptseite soll beim ERSTEN Aufruf ein PopUp produzieren. Da die Site per php immer wieder neu lädt, um den gewählten Inhalt anzuzeigen, lädt auch das PopUp immer wieder neu.
Ich habe schon versucht das Ganze per Variable zu stoppen. Da ich aber mit JavaScript kaum was am Hut habe, bin ich mir nicht sicher, ob mein Ansatz stimmt.

Hier mein Versuch:

Code:
if (gepopped < 1){
 function neuesfenster() { 
 top.name = "main_window"; 
 var gepopped = 1;
 var popupURL = "rekrut.html"; 
 var popup = window.open  (popupURL,"neuesfenster",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=400,height=220'); 
 if( navigator.appName.substring(0,8) == "Netscape" ) { 
  popup.location = popupURL; 
  popup.opener = self; 
  }  
 }
}
 
Code:
var abfrage = ""
if (abfrage != "true")

{
window.open  ('seite.htm', 'fenstername', width='200' height='100')
abfrage = 'true'
}
else
{
return false
}

Das wäre mal mein Ansatz.

Hast Du den dein Script mal erprobt was bei rauskommt?


EDIT:

Erm vergiß das Script oben, du kommst um einen Cookiie ja nicht herum oder musst die Variable "abfrage" dynamisch" mit PHP füllen, weil das JavaScript ja bei jedem laden zurückgesetzt wird!
 
Bei meinem öffnet er das Fenster trotzdem immer.

Im Übrigen öffne ich das Fenster mittels:
Code:
<body background="../bilder/bg1.gif" style="font-family:Verdana; font-size: x-small; color: #FFFFFF;"onLoad="neuesfenster()">
 
Siehe mein Edit oben.

Die Variable wird logischweise immer wieder geleert, bei jedem reload(), also musst du den Wert extern speichern ( Cokkie ) !

Bin ich auch erst eben drüber gestolpert!
 
Sodala,

hab'S mit einem cookie gelöst!

Code:
<? 
session_start(); 
setcookie("socs","1");
?>
.
.
.
<body background="../bilder/bg1.gif" style="font-family:Verdana; font-size: x-small; color: #FFFFFF;" <? if ($_COOKIE["socs"]!="1"){ ?> onLoad="neuesfenster()" <?}?>>

Vielen Dank für den Tipp!
 
Hi,

eine weitere Möglichkeit wäre die Abfrage der URL über die JavaScript-Methode search.

1. Variante:
Ich gehe davon aus, dass das erste Laden des Dokumentes ohne Übergabe eines Parameters
erfolgt. Nach dem ersten Aufrufen des Dokumentes werden Parameter über die URL übergeben.
Code:
if(window.location.search == ""){
    neuesfenster();
}
- Wird das Dokument das erste mal aufgerufen, so wird kein Parameter gefunden -> PopUp wird geöffnet
- Wird das Dokument erneut geöffnet, wird ein Parameter gefunden -> kein erneutes Öffnen

2. Variante:
Sollten immer Parameter übergeben werden, so müsstest du die Parameter in einem
JavaScript auswerten.
Code:
strURL = String(window.location.search).substring(1, String(window.location.search).length);
Damit kannst Du die übergebenen Parameter als Gesamtstring extrahieren. Diesen
String könntest Du anschliessend zum Beispiel prüfen, ob ein bestimmter Teilstring
enthalten ist (im Beispiel-Code unten der Teilstring "test").
Ist er nicht enthalten (-1), wird das PopUp geöffnet, sonst nicht.
Code:
if(eval("found = strURL.search(/test/);") == -1){
    neuesfenster();
}

Vielleicht bringt Dich das weiter.

Ciao
Quaese
 
Wie gesagt:
Ich habe es per cookie gelöst.
Das war die Variante, die am einfachsten zu erledigen war.

Trotzdem danke ich für Deinen Vorschlag.
Sicher wird der eine oder andere User per Suche auf diesen Thread kommen und vielleicht sagt ihm dann Deine Methode eher zu :)
 

Neue Beiträge

Zurück