Jugend mosht
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 09.05.2007, 10:26   #1
TP-Member
 
Registriert seit: Mar 2001
JanBreier macht alles soweit korrekt
Question

Layer-"PopUp" mit Cookie? Wie kann ich altes PopUp Script anpassen?


Hallo,
ich habe eine altes Script welches beim Betreten einer Seite automatisch ein PopUp Fenster öffnet und einen Cookie setzt um den User nicht zu häufig mit dem PopUp zu belästigen.
Nachdem ich das PopUp geschaltet hatte hat Google allerdings meine Seite gesperrt. Nun hab ich auf das automatische PopUp verzichtet und setze statt dessen einen Layer ein, der automatich eingeblendet wird und aussieht wie ein PopUp. Allerdings wird dieser nun bei jedem Besuch der Seite angezeigt, was ich gerne wieder anhand eines Cookies steuern würde.
Unten poste ich mal das alte PopUp-Cookie Script - wahrscheinlich müsste man nur var page, var windowprops und den Teil in if (count == null) { ...... } anpassen - leider weiß ich nicht wie...der Layer hat eine ID, anhand derer man ihn sicher ansprechen könnte...

Kann mir da jemand helfen? Wäre total super

Code:
<SCRIPT LANGUAGE="JavaScript">
<!-- Verstecken für ältere Browser --
var expDays = 14; 
// Anzahl der Tage, die das Cookie gültig sein soll
var page = "http://www.areablue.de/janbreier.html";
// Seite, die aufgerufen wird
var windowprops = "width=490,height=290,left=200,top=200,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes";
// Angabe über die neue Seite: Breite, Höhe, Ort, Aussehen

// Überprüfung, ob Cookie gesetzt:
function checkCount() {
var count = GetCookie('count');
// Wenn der Zähler Null ist, wird er auf 1 gesetzt,
// das Cookie gesetzt und das neue Fenster geöffnet:
if (count == null) {
count=1;
SetCookie('count', count, exp);
window.open(page, "", windowprops);
}
// Anderenfalls wird nur der Zähler erhöht
// und das Cookie überschrieben.
else {
count++;
SetCookie('count', count, exp);
}
}
//Cookie lesen:
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;
}
// Cookie-Wert auslesen: 
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
// Cookie setzen:
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" : "");
}
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
// PopUp aufrufen:
window.onload=checkCount;
// Ende verstecken -->
</script>
JanBreier ist offline   Mit Zitat antworten


Alt 09.05.2007, 21:00   #2
TP-Moderator
 
Benutzerbild von Malleus
 
Registriert seit: Aug 2004
Ort: Homburg / Saarland
Malleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKE
Hallo Jan,
schau' Dir mal das folgende an: Vielleicht ist das für Deine Zwecke auch in Ordnung:

Demo

Code:
<html>
<head>
<script language="JavaScript" type="text/javascript" src="libCookies.js"></script>
<script type="text/javascript">
function initPage()
{
	myCookies = getCookies();

	if ( myCookies[ "popupDisplayed" ] == null )
	{
		setCookie( "popupDisplayed" , "1" );
		document.getElementById( "myPopup" ).style.display = "block";

	};
};

</script>

<style type="text/css">
#myPopup {
	display: none;
	border: solid 2px black;
	padding: 4px;
	background-color: yellow;
	width:200px;
	text-align: center;
	position: absolute;
	top: 100px;
	left: 100px;
}
</style>

</head>

<body onload="initPage()">
<div id="myPopup">Dies ist ein Popup,<br>das nur einmal erscheint!<br><br>
<input type="button" value="Fenster schließen" onclick="document.getElementById('myPopup').style.display='none'"></div>
</body>
</html>
Auszug: libCookies.js
Code:
function getCookies()
{
    var result = [] , i , values ,
    storedCookies = document.cookie.split(";"); 
    for ( i=0;i<storedCookies.length;i++)
    {
            values = storedCookies[ i ].split("=");  
		    result[ values[0].replace(/^ /,'') ] = values[ 1 ]; // Leerzeichen entfernen
    };
    return result;
}

function setCookieTime( days )
{
    if ( !days )
       return ( new Date( 2037 , 0 , 1 )).toGMTString();
       
    return new Date( ( new Date().getTime() + 1000 * 3600 * 24 * days ) ).toGMTString();
}

function setCookie( name , value )
{
    document.cookie = name + "=" + unescape( value ) + ";"+
       "expires=" + setCookieTime()  + ";";
}

function deleteCookie( cookieName )
{
    document.cookie = cookieName + "=;expires=" + setCookieTime( -1 );
}
tschau

Frank

Geändert von Malleus (10.05.2007 um 20:49 Uhr). Grund: Scriptfehler bei "deleteCookie"
Malleus ist offline   Mit Zitat antworten
Alt 09.05.2007, 21:36   #3
TP-Member
 
Registriert seit: Mar 2001
JanBreier macht alles soweit korrekt
Wow!
Das ging ja mal wieder super schnell! Funktioniert großartig! Vielen vielen vielen Dank
Gruß, Jan
JanBreier ist offline   Mit Zitat antworten
Alt 22.05.2007, 17:54   #4
TP-Newbie
 
Registriert seit: May 2007
vorta macht alles soweit korrekt
Hallo Frank,

hab Deinen Code über Google gefunden. Kann man den auch so anpassen, dass
eine Seite in dem Frame geladen wird?

Danke und Grüße Thomas
vorta ist offline   Mit Zitat antworten
Alt 22.05.2007, 21:39   #5
TP-Moderator
 
Benutzerbild von Malleus
 
Registriert seit: Aug 2004
Ort: Homburg / Saarland
Malleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKE
Hallo Thomas,
da ich nicht genau weiß, wie's bei Dir aussieht, gibt's mal folgenden Ansatz:

Du hast ein Frame mit dem Namen "myPopupFrame". Dann kannst Du diesen Frame wie folgt umschalten:

Code:
function initPage()
{
	myCookies = getCookies();

	if ( myCookies[ "popupDisplayed" ] == null )
	{
		setCookie( "popupDisplayed" , "1" );
          document.frames["myPopupFrame"].location.replace("neueSeite.html")

	};
};
Tschau
Frank
Malleus ist offline   Mit Zitat antworten
Alt 04.06.2007, 01:29   #6
TP-Newbie
 
Registriert seit: Jun 2007
tvtotal macht alles soweit korrekt

Popup im IE 7 kommt immer wieder, im FF klappt es


Hallo!!!

Ich bin neu und habe mich direkt ein bischen eingelesen. Dabei habe ich diesen Thread gefunden und mal etwas ausprobiert.

Ich habe einen Shop, bei dem ich das Popup so wie oben eingebaut habe. Im FireFox funktioniert das ganze wunderbar (Cookie wird gespeichert und das Popup erscheint erst nach Löschung des Cookies wieder).

Im InternetExplorer dagegen kommt das Popup andauernd, d.h. bei jedem Link. Gibt`s da eventuell einen Bug?

Grüße & Danke

tvttotal
tvtotal ist offline   Mit Zitat antworten
Alt 19.04.2008, 11:21   #7
TP-Newbie
 
Registriert seit: Apr 2008
Nick45 macht alles soweit korrekt
Zitat:
Zitat von Malleus Beitrag anzeigen
Hallo Jan,
schau' Dir mal das folgende an: Vielleicht ist das für Deine Zwecke auch in Ordnung:

Demo

Code:
<html>
<head>
<script language="JavaScript" type="text/javascript" src="libCookies.js"></script>
<script type="text/javascript">
function initPage()
{
	myCookies = getCookies();

	if ( myCookies[ "popupDisplayed" ] == null )
	{
		setCookie( "popupDisplayed" , "1" );
		document.getElementById( "myPopup" ).style.display = "block";

	};
};

</script>

<style type="text/css">
#myPopup {
	display: none;
	border: solid 2px black;
	padding: 4px;
	background-color: yellow;
	width:200px;
	text-align: center;
	position: absolute;
	top: 100px;
	left: 100px;
}
</style>

</head>

<body onload="initPage()">
<div id="myPopup">Dies ist ein Popup,<br>das nur einmal erscheint!<br><br>
<input type="button" value="Fenster schließen" onclick="document.getElementById('myPopup').style.display='none'"></div>
</body>
</html>
Auszug: libCookies.js
Code:
function getCookies()
{
    var result = [] , i , values ,
    storedCookies = document.cookie.split(";"); 
    for ( i=0;i<storedCookies.length;i++)
    {
            values = storedCookies[ i ].split("=");  
		    result[ values[0].replace(/^ /,'') ] = values[ 1 ]; // Leerzeichen entfernen
    };
    return result;
}

function setCookieTime( days )
{
    if ( !days )
       return ( new Date( 2037 , 0 , 1 )).toGMTString();
       
    return new Date( ( new Date().getTime() + 1000 * 3600 * 24 * days ) ).toGMTString();
}

function setCookie( name , value )
{
    document.cookie = name + "=" + unescape( value ) + ";"+
       "expires=" + setCookieTime()  + ";";
}

function deleteCookie( cookieName )
{
    document.cookie = cookieName + "=;expires=" + setCookieTime( -1 );
}
tschau

Frank
Hallo an Alle,
ich weiß, dieses Thema ist schon alt, aber ich habe mal eine Frage dazu.
Wie kann ich den Cookie so einstellen, dass dieser nur 12 Stunden gültig ist?
Ich habe davon absolut keinen Durchblick.
Vielen Dank im Voraus
Nicky
Nick45 ist offline   Mit Zitat antworten
Alt 19.04.2008, 19:13   #8
TP-Moderator
 
Benutzerbild von Malleus
 
Registriert seit: Aug 2004
Ort: Homburg / Saarland
Malleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKE
Hallo Nicky,
versuch' mal folgendes:

Die "initPage"-Funktion änderst Du wie folgt ab:
PHP-Code:
function initPage()
{
    
myCookies getCookies();

    if ( 
myCookies"popupDisplayed" ] == null )
    {
        
//setCookie( "popupDisplayed" , "1" ); 
        
setCookieWithTime"popupDisplayed" "1"0.5 );
        
document.getElementById"myPopup" ).style.display "block";

    };
}; 
Dann fügst Du eine neue Funktion in der "libCookies.js"-Datei ein:
PHP-Code:
function setCookieWithTimename valuecookieTime )
{
    
document.cookie name "=" unescapevalue ) + ";"+
       
"expires=" setCookieTimecookieTime)  + ";";

Das sollte es gewesen sein.

Tschau

Frank

P.S. Noch ein kleiner Nachtrag für "tvtotal". Hast Du mal überprüft, ob Du Cookies im IE zuläßt? ( Das wirst Du wahrscheinlich nicht mehr lesen, sorry, hab' Deine Frage irgendwie übersehen )
Malleus ist offline   Mit Zitat antworten
Alt 19.04.2008, 20:24   #9
TP-Newbie
 
Registriert seit: Apr 2008
Nick45 macht alles soweit korrekt
Hallo Malleus,

herzlichen Dank für deine Antwort und Lösung.

Viele Grüße
Nicky
Nick45 ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > HTML Puristen > Javascript
Layer-"PopUp" mit Cookie? Wie kann ich altes PopUp Script anpassen? Layer-"PopUp" mit Cookie? Wie kann ich altes PopUp Script anpassen?
« JavaScript/Ajax Funktion wird nur bedingt ausgeführt | Problem mit ypSlideOutMenu »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:42 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67