Java Popup mit Cokie versehen, dass es nur einmal öffnet

Hallo,

ich habe hier ein javascript, dass sich bei jedem neuem laden der Seite neu öffnet.
Möchte aber erreichen, dass es sich nur einmal öffnet. Evtl. mit einer Cookie Einbindung.
Wer kann mir helfen?

Hier das script:

<SCRIPT LANGUAGE=„JavaScript“>
<!-- Begin
closetime = 0; // Close window after __ number of seconds?
// 0 = do not close, anything else = number of seconds

function Start(URL, WIDTH, HEIGHT) {
windowprops = „left=50,top=50,width=“ + WIDTH + „,height=“ + HEIGHT;
preview = window.open(URL, „preview“, windowprops);
if (closetime) setTimeout(„preview.close();“, closetime*1000);
}

function doPopup() {
url = „“;
width = 1370;  // width of window in pixels
height = 800; // height of window in pixels
delay = 2;    // time in seconds before popup opens
timer = setTimeout(„Start(url, width, height)“, delay*1000);
}
//  End -->
</script>

Hallo,

ich habe hier ein javascript, dass sich bei jedem neuem laden
der Seite neu öffnet.
Möchte aber erreichen, dass es sich nur einmal öffnet. Evtl.
mit einer Cookie Einbindung.
Wer kann mir helfen?

Warum machst du das mit Javascript? Welche Skriptsprache liefert denn dein HTML/Javascript aus? In PHP etwa würde ich einfach ein Cookie wegspeichern und wenn es da ist, den ganzen Skript-Block ausblenden.

Das ist trivial und funktioniert auch dann, wenn die Sicherheitseinstellungen deines Browsers den Zugriff auf Cookies per Javascript verhindern.

Andernfalls kannst du mit Javascript aber auch den local storage verwenden. Das ist dann noch 10mal trivialer und funktioniert in den modernen Browser gut. In älteren Browsern geht das allerdings nicht. Du musst selbst entscheiden, wie wichtig Kompatibilität zu alten Browser ist.

localStorage.setItem("key", "wert");
localStorage.getItem("key")

Hier das script:

bitte benutze den PRE-Knopf für Codelistings, sonst ist das unlesbar.

Günther

Stern? Bitte gern.

Hallo Guenther,

ich bin in Sachen Javascript nicht so ein Ass. Könntest du mir helfen dies in das script so einzubauen, dass es kompatibel ist zu den neuen Browsern?

Habe noch was vergessen, das Fenster soll sich öffnen aber im Hintergrund, momentan ist dies nicht der Fall.
Achso im body rufe ich das script so auf:

Hallo Guenther,

danke schonmal für den Tipp.
Ich bin was Java anbelangt nicht so fit.
Könntest du mir dabei helfen den Code unterzubringen?
Ebenso wollte ich, dass sich das Fenster im Hintergund öffnet und nicht gleich präsent ist auf der Vorderseite.

Danke schonmal

P.S.
Hab hier zwar was gefunden:

if(localStorage.getItem('firstview') != 'viewed'){
 
localStorage.setItem('firstview', 'viewed');
 
showPopup();

Weis aber nicht wie ich das unterbringen soll, genauso wie diesen hier zum aufrufen:

danke schonmal für den Tipp.
Ich bin was Java anbelangt nicht so fit.
Könntest du mir dabei helfen den Code unterzubringen?

klar.

Ebenso wollte ich, dass sich das Fenster im Hintergund öffnet
und nicht gleich präsent ist auf der Vorderseite.

Darauf hast du wenig bis keinen Einfluss und das ist auch gut so.

Hab hier zwar was gefunden:

Das sieht doch gut aus.

if(localStorage.getItem(‚firstview‘) != ‚viewed‘){

localStorage.setItem(‚firstview‘, ‚viewed‘);

showPopup();

Weis aber nicht wie ich das unterbringen soll, genauso wie
diesen hier zum aufrufen:

na im Skript-Tag. Du musst dir einen Skript-Bereich definieren. Wenn es direkt beim Seitenaufruf passieren soll, dann einfach im Body der HTML-Seite notieren.

http://de.selfhtml.org/html/transit/scripts.htm

Mein Tipp: Lass die Finger von diesen Javascriptereignissen, die direkt an das HTML-Zeug rangeschrieben werden. Dadurch fragmentiert dein Code und in einem halben Jahr blickst du nicht mehr durch, warum was passiert wenn du hier oder da klickst.

Nimm dir ein einfaches Javascript-Framework und mach dir das Leben leicht.

das hier, z.B. https://jquery.com (die Seite scheint gerade down zu sein, ist aber sicher bald wieder da.

Versuch einfach mal das Beispiel direkt auf der von mir verlinkten Seite. Wenn du gar nicht klarkommst, dann fehlen dir die Basics in HTML. Das solltest du erstmal draufkriegen. Eine Mini-Suche förderte das hier zutage, das sieht leicht verständlich aus

http://www.html-seminar.de/

Günther

P.S: Stern? Bitte gern.

Hallo ,

Ebenso wollte ich, dass sich das Fenster im Hintergund öffnet
und nicht gleich präsent ist auf der Vorderseite.

Darauf hast du wenig bis keinen Einfluss und das ist auch gut
so.

Das stimmt so nicht,

Der Trick ist …


.
Fenster öffnen und dann den focus wieder auf den aufrufer setzen .
damit sollte das neue fenster im hintergrund verschwinden .

Günther

P.S: Stern? Bitte gern.

Hallo ,

Ebenso wollte ich, dass sich das Fenster im Hintergund öffnet
und nicht gleich präsent ist auf der Vorderseite.

gerade gefunden

var foo = window.open(…); // fenster öffnen
foo.blur(); // in den hintergrund legen
window.focus(); // in vordergrund heben

Der Trick ist 20 Jahre alt und führt bei Firefox mit Adblocker gern mal dazu, dass das so geöffnete Fenster gleich wieder geschlossen wird.

Fakt ist, dass du nicht über alle Browser in allen Versionen garantieren kannst, dass ein Popup überhaupt ungefragt aufgeht und sich dann noch so verhält, wie du das willst.

Günther

2 Like

Hallo ,

Fakt ist, dass du nicht über alle Browser in allen Versionen
garantieren kannst, dass ein Popup überhaupt ungefragt aufgeht
und sich dann noch so verhält, wie du das willst.

Ja und , darum geht es auch nciht bei der Frage .

Günther

kleinkam meister , echter kleinkram .

deswegen machen das auch alle seiten seit 20 jahren …

genauso wie gleich kommt, aber die mit JavaScript block kriegen kein open fenster …

und wer addblocker hat, hat die halt, sollen ja auch blocken die adds und offt ist ein fenster ein add . also wirklich , deswegen zu sagen das geht nicht ist nur falsch information weils dir persöhnlich seit 20 jahren schon nicht passt .

Geht das jetzt schon wieder los?

und wer addblocker hat, hat die halt, sollen ja auch blocken
die adds und offt ist ein fenster ein add . also wirklich ,

Gabs den Satz auch in deutsch?

deswegen zu sagen das geht nicht ist nur falsch information

Ich habe nicht gesagt: „Es geht nicht.´“ Ich habe gesagt, dass das nicht über alle Browser in allen Versionen geht. Und das unterstreicht meine zuerst gemachte Aussage, dass man da eben nicht die volle Kontrolle drüber hat.

weils dir persöhnlich seit 20 jahren schon nicht passt .

Und schon sind wir runter von der Sachebene und mitten im sinnbefreiten Kleinkrieg. Du kannst noch 100mal spitzfindig dagegenhalten, dass unter anderen Umständen andere Sachen anders funktionieren. Ich bin der Meinung, dass man Sachen die nicht immer funktionieren lassen sollte. Und wenn du das anders siehst, dann ist mir das herzlich egal.

Bevor das jetzt hier wieder so ausartet, wie das letzte Mal, bin ich hier jetzt einfach mal still. Aber deinen jetzt folgenden Flame werde ich mit einer Tüte Popcorn in der Hand gerne noch lesen.

Günther

2 Like

Man sollte eindringlich darauf hinweisen das Popups zu der Sorte Browser-Funktionen gehören die das UX zerstören wenn sie periodisch auftauchen. Es hat einen Grund warum heute nativ Browser Popup-Blocker besitzen die auch by default eingeschaltet sind.

Was spricht denn dagegen ein Div mit einem hohen z-index entsprechend auf dem Viewport zu positionieren ? - Weniger aggressiv als Popups und clever genutzt sogar UX-freundlich.