Avatar billede smackers Nybegynder
09. september 2001 - 22:41 Der er 22 kommentarer og
1 løsning

onload og cookies

Hejsa,

Når min index-side åbner, åbnes samtidig et popup-vindue med <body onload=\"pop();\"> som henviser til et simpelt javascript der åbner popups.

Kan jeg bruge cookies (aller javascript) for at forhindre at popupvinduet åbnes flere gange på én dag for samme bruger?

Mvh smackers
Avatar billede roenving Novice
09. september 2001 - 22:43 #1
Ja !!

hth
jes
Avatar billede smackers Nybegynder
09. september 2001 - 22:44 #2
how?
Avatar billede roenving Novice
09. september 2001 - 22:48 #3
Nå, for at være lidt seriøs:

I dit pop()-script checker du om document.cookie er noget, og om den indeholder den streng, du har defineret (cookies er domæne-wide, så du skal selv definere den relevante variabel):

var exp = new Date();
if (document.cookie && document.cookie.indexOf(\'dinStreng=\')return;
else document.cookie=\'dinStreng=Yes;expires=\'+exp.toGMTString;

hth
jes
Avatar billede smackers Nybegynder
09. september 2001 - 22:53 #4
Hej jes/roenving, og tak for svaret!

Jeg er stadig ny på området..

Hvor´ledes sætter jeg det ind i:

<html>
<head>
<script LANGUAGE=\"Javascript\">
function pop(){window.open(\"http://www.site.dk/popup.asp\",\"popup\");}
</script>
</head>

<body onload=\"pop();\">
</body>
Avatar billede smackers Nybegynder
09. september 2001 - 22:54 #5
..hmmm
og hvad bør jeg vælge som \"dinStreng\"-variablen?

<:) smackers
Avatar billede roenving Novice
09. september 2001 - 22:55 #6
Du kan nøjes med:

<script LANGUAGE=\"Javascript\" type=\'text/javascript\'>
function pop(){
var exp = new Date();
if (document.cookie && document.cookie.indexOf(\'dinStreng=\')return;
document.cookie=\'dinStreng=Yes;expires=\'+exp.toGMTString;
window.open(\"http://www.site.dk/popup.asp\",\"popup\");
}
</script>
Avatar billede roenving Novice
09. september 2001 - 22:58 #7
Hov, du skal jo også have en dag med:

var exp = new Date();
exp.setTime(exp.getTime+(1000*60*60*24));

Kald din streng for mitIndex, eller bedre noget, som har noget med din sides navn at gøre

hth
jes
Avatar billede roenving Novice
09. september 2001 - 23:00 #8
Øff ...

<script LANGUAGE=\"Javascript\" type=\'text/javascript\'>
function pop(){
var exp = new Date();
exp.setTime(exp.getTime+(1000*60*60*24));

if (document.cookie && document.cookie.indexOf(\'dinStreng=\'))return;
document.cookie=\'dinStreng=Yes;expires=\'+exp.toGMTString;
window.open(\"http://www.site.dk/popup.asp\",\"popup\");
}
</script>

bare lige en enkelt fejl ...
Avatar billede smackers Nybegynder
09. september 2001 - 23:29 #9
det gør ikke helt som ventet.
faktisk sker der ingenting!
index-siden vises, men ingen popups :(

prøv http://www.chilinet.dk/lir.asp

smackers
Avatar billede roenving Novice
09. september 2001 - 23:37 #10
Kvajbeløre ... ja det er mig

der spørges jo kun om document.cookie.indexOf(\'dinStreng=\') eksisterer, i stedet:

document.cookie.indexOf(\'dinStreng=\')!=-1
Avatar billede smackers Nybegynder
09. september 2001 - 23:40 #11
tja..

nu er der popup vindue hver gang siden læses :(

-smackers
Avatar billede smackers Nybegynder
09. september 2001 - 23:41 #12
nu ser det således ud:

function pop(){
var exp = new Date();
exp.setTime(exp.getTime+(1000*60*60*24));
if (document.cookie && document.cookie.indexOf(\'svinehoved=\')!=-1)return;
document.cookie=\'svinehoved=Yes;expires=\'+exp.toGMTString;
window.open(\"http://www.chilinet.dk/mobil/mobillir.asp\",\"mobilos\",\"resizable=no,toolbar=no,scrollbars=no,menubar=no,status=no,location=no,directories=no,width=400,height=400,left=0,top=0\");
}

-smackers
Avatar billede roenving Novice
09. september 2001 - 23:54 #13
Forstår det ik\' li\'e

jeg har slet ikke fået en cookie selv ??
Avatar billede roenving Novice
09. september 2001 - 23:54 #14
Kigger lige lidt mere
Avatar billede smackers Nybegynder
10. september 2001 - 00:05 #15
lyder godt :)
Avatar billede Slettet bruger
10. september 2001 - 10:33 #16
Jeg ved ikke, om jeg er helt galt på den:

function pop(){
var exp = new Date();
exp.setTime(exp.getTime+(1000*60*60*24));
if (!document.cookie || document.cookie.indexOf(\'svinehoved=\') == -1) {
window.open(\"http://www.chilinet.dk/mobil/mobillir.asp\",\"mobilos\",\"resizable=no,toolbar=no,scrollbars=no,menubar=no,status=no,location=no,directories=no,width=400,height=400,left=0,top=0\");
}
else {
document.cookie=\'svinehoved=Yes;expires=\'+exp.toGMTString;
}
}

Du kan jo prøve...
Avatar billede smackers Nybegynder
10. september 2001 - 12:11 #17
hej phoenix :)
tak for forsøget!
..men det går ikke helt som ønsket.

popup-vinduet åbner hver gang siden læses.
der må kun poppes 1 gang om dagen..
Avatar billede Slettet bruger
11. september 2001 - 15:45 #18
Nu har jeg endelig fundet svaret! Jeg har testet det, så det skulle undre mig, hvis det ikke virker:

<script>
<!--

function pop() {
var exp = new Date();
var nyTid = exp.getTime() + (1000 * 60 * 60 * 24);
exp.setTime(nyTid);
if (document.cookie == \"\") {
document.cookie=\'setFoer=ja;expires=\' + exp.toGMTString();
window.open(\"http://www.dynamicdrive.com\",\"mobilos\",\"resizable=no,toolbar=no,scrollbars=no,menubar=no,status=no,location=no,directories=no,width=400,height=400,left=0,top=0\");
}
}

//-->
</script>

Og så selvfølgelig:
<body onLoad=\"pop()\">
Avatar billede roenving Novice
12. september 2001 - 02:12 #19
Ja, phoenixv, den var den jeg havde i tankerne, da jeg begyndte at skrive, men hvis der nu tilfældigvis er flere hjemmesider i det samme domæne, vil vi have et problem, hvis andre finder på at bruge cookies -- derfor skal der checkes for, om en eller anden bestemt teskst-streng er til stede (i resterne af de cookies, som findes).

Lige til forklaring:
Cookies eksisterer på domæne-niveau, og fra Javascript returnerer document.cookie indholdet af alle gyldige cookies\' værdier i een lang streng adskilt af ; men uden tidsstempel.

hth
jes
Avatar billede smackers Nybegynder
12. september 2001 - 02:38 #20
Hej roenving og phoenixv,

Der er kun tale om en cookie på hele sitet, så det går..

Tusind tak for hjælpen begge to!

phoenixv får pointene, da hans løsning i enden var den der virkede :)

Mvh smackers
Avatar billede roenving Novice
12. september 2001 - 02:45 #21
Jamn, jeg kan ik\' li\' at phoenixv får points -- lige plusli er han nemlig foran mig *græde græde græde*
Avatar billede Slettet bruger
12. september 2001 - 14:47 #22
Aaaah... Så vidt kommer det nok aldrig! Men egentlig fortjener du vel nogle af skejserne, for det var dit script, jeg gik ud fra! Bare sig til eller mail mig!
Med hensyn til dit indlæg kl. 02:12:06 så kom jeg lige i tanke om det efter jeg havde slukket min PC. Her er det færdige script:

<script>
<!--

function pop() {
var exp = new Date();
var nyTid = exp.getTime() + (1000 * 60 * 60 * 24);
exp.setTime(nyTid);
if (document.cookie.indexOf(\"setFoer=\") == -1) {
document.cookie=\'setFoer=ja;expires=\' + exp.toGMTString();
window.open(\"http://www.dynamicdrive.com\",\"mobilos\",\"resizable=no,toolbar=no,scrollbars=no,menubar=no,status=no,location=no,directories=no,width=400,height=400,left=0,top=0\");
}
}

//-->
</script>
Avatar billede roenving Novice
12. september 2001 - 14:50 #23
*GG*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester