Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Pop up Fenster soll nur einmal aufgehen





Frage

Hallo, wenn ich die Website www.eventsharing.com öffne, geht wie gewünscht ein pop up Fenster auf, das ich schließen kann. Das ist OK. Wenn ich dann auf z.B. den Link "Idee und Konzept" klicke und auf den Link "zurück", dann geht es wieder auf die Homepage und das pop up Fenster öffnet sich erneut. Das ist auch der Fall, wenn ich oben auf den Button "Home" klicke.. Ich möchte aber nicht, dass sich jedes Mal das Pop up Fenster erneut öffnet. Was muß ich tun, damit das funktioniert?

Antwort 1 von katy

Hallo woholle,

das wird jetzt etwas kompliziert. Du musst dir ja irgendwie merken, dass das PopUp schon mal geöffnet wurde.

Es gibt soweit ich das sehe 2 Möglichkeiten.

Du könntest an die Links von der Unterseite zur Home-Seite einen Parameter anfügen in der Art:
<a href="index.htm?popup=kein">Home</a>

und vorm Öffnen des PopUps immer fragen, ob der Parameter nicht gesetzt ist:
if (location.search.indexOf("popup=kein")<0) ... öffne PopUp


Oder du nutzt ein Cookie.
Allerdings werden Cookies fast noch mehr geblockt als PopUps.

Ich hoffe ich konnte dir einen Lösungsansatz geben

katy

Antwort 2 von Solo

Hi, das geht mit javascript und einem Cookie.
* #### Anfang #### */
/* ---- Mittels eines erstellten Cookies wird bewirkt, dass sich ein PopUp-Fenster nur beim ersten Seitenaufruf öffnet. Nur die ersten 3 Variablen anpassen! ---- */

var expDays = 1; // Lebensdauer des Cookies in Tagen

var page = "./../popup.htm"; // Seite, die aufgerufen werden soll
var windowprops = "width=270,height=240,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes"; // Fenstereigenschaften

function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function amt(){
var count = GetCookie('count')
if(count == null) {
SetCookie('count','1')
return 1
}
else {
var newcount = parseInt(count) + 1;
DeleteCookie('count')
SetCookie('count',newcount,exp)
return count
   }
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function checkCount() {
var count = GetCookie('count');
if (count == null) {
count=1;
SetCookie('count', count, exp);

window.open(page, "", windowprops);

}
else {
count++;
SetCookie('count', count, exp);
   }
}

/* #### Ende #### */


Dieses Script als popup.js abspeichern.
In der HTML-Seite von der das Popup aufgerufen werden soll im Head mit

<script src="popup.js" type="text/javascript"></script>

das Script aufrufen,

und im Body der Seite
<body onload="checkCount()" ... >

einfügen.

Antwort 3 von katy

Hallo Solo,

sorry, wenn ich deine Antwort kritisiere, aber findest du dein Script nicht auch ganz schön überdimensioniert für ein klitzekleines Cookie bei einem PopUp?
Die ganzen Set- und GetCookie-Funktionen sind doch nur dann sinnvoll, wenn du Flexibilität beim Cookie-Setzen brauchst, also Cookies zu verschiedenen Zwecken setzt.
Das dürfte hier aber kaum der Fall sein.
Sicherlich kannst du für woholle die paar wesentlichen Zeilen extrahieren und das Skript auf einen Bruchteil der Länge kürzen.

katy

Antwort 4 von KJG17

Moin woholle,

wozu überhaupt dieses Popup?

Bei den meisten Leuten wird es vermutlich ohnehin geblockt.
Auf der Startseite findet man die im Popup angezeigten Informationen ebenso unter 'Aktuell', nach Aufruf von 'Destinationen und Angebote' unter 'Exklusive Vorträge'.
Wenn du das als 'Aktuelle Angebote' etwas mehr optisch herausheben würdest, könntest du aus meiner Sicht auf das Popup verzichten.

Als einzige Unterseite wird 'Über uns' als Popup geladen, warum dieser Stilbruch? Der zudem potentiellen Kunden mit Popup-Blocker noch zusätzliche Aktionen abverlangt. Als ob du nicht wirklich was 'Über uns' erzählen möchtest.

Gruß
Kalle

Antwort 5 von woholle

Hallo,

danke für Eure Hilfestellungen und Meinungen.

Auf den nenner gebracht: Wir werden aus den genannten Gründen auf das Pop up verzichten.

Website wurde bereits aktualisiert.

Somit ist das Thema beendet. Danke.