Avatar billede ravnborg Nybegynder
18. september 2001 - 12:20 Der er 12 kommentarer og
2 løsninger

Popup på klokkeslet

Hvordan får jeg min side til at lave popup på et bestemt klokkeslet?
F.eks. kl 10.00, 12.00 og 14.00

Ravnborg
Avatar billede tsocm Nybegynder
18. september 2001 - 12:21 #1
http://www.coolcity.f2s.com/eksperten/popup/start.html

her kan du lave det nemt og bekvemt :-)
Avatar billede tsocm Nybegynder
18. september 2001 - 12:22 #2
beklager, jeg mente også der var tidspunkter... men det var der ikke :-)
Avatar billede Slettet bruger
18. september 2001 - 16:49 #3
<script>
function popKl() {
nu = new Date();
time = nu.getHours();
tempVar = nu.getMinutes * 60 + nu.getSeconds();
naesteTime = 3600 - tempVar;

if (time == 10 || time == 12 || time == 14) {
window.open(\"din-side.html\",\"nytVindue\");
}
setTimeout(\"popKl()\",naesteTime * 1000);
}
</script>

Dette må være noget nær det idélle med hensyn til belastning af brugerens computer...
Avatar billede Slettet bruger
18. september 2001 - 16:52 #4
Måske skulle du skifte variablen \"time\" ud med fx \"klTime\". Jeg ved ikke hvor nøgtern javascript er med forskellen på \"time\" og \"time()\", o.s.v.

Så skift alle de steder, hvor der står \"time\" ud med fx \"klTime\"! :-)

Og så skal du desuden skifte \"din-side.html\" ud med din rigtige popup-side!
Avatar billede ravnborg Nybegynder
18. september 2001 - 17:20 #5
Hvad nu hvis det ene tidspunkt er 12.32?
Avatar billede Slettet bruger
18. september 2001 - 17:30 #6
Åh ååh! Ja, så er det ikke helt så enkelt...
Sæt dette script ind i stedet:
<script>
timen = 12; //Timen i klokkeslættet
minuttet = 32; //Minuttet i klokkeslættet

function popKl() {
nu = new Date();
klTime = nu.getHours();
klMinut = nu.getMinutes();
tempVar = nu.getSeconds() * 60;
naesteMinut = 60 - tempVar;

if (klTime == timen && klMinut == minuttet) {
window.open(\"din-side.html\",\"nytVindue\");
}
setTimeout(\"popKl()\",naesteMinut * 1000);
}
</script>
Avatar billede Slettet bruger
18. september 2001 - 17:32 #7
Egentlig kan du slette linjerne:
tempVar = nu.getSeconds() * 60;
naesteMinut = 60 - tempVar
og:
setTimeout(\"popKl()\",naesteMinut * 1000);
hvis der kun skal poppes op én gang i døgnet (fx kl. 12:32), og du regner med, at folk ikke bliver på din side 24 timer! :-)
Avatar billede ravnborg Nybegynder
18. september 2001 - 18:07 #8
Jeg kan ikke få det til at virke!
Jeg indsætter scriptet sætter klokkeslettet, og skriver hvilken side der skal komme frem.

Men der sker ikke noget når uret rammer dette klokkeslet, heller ikke hvis jeg reloader på klokkeslet.

Hvad går galt?
Avatar billede roenving Novice
19. september 2001 - 03:10 #9
Med udgangspunkt i phoenixv\'s script:

<script>
var timen = new Array(12,14,16); //Time i klokkeslættet
var minuttet = new Array(32,16,55); //Minuttet i klokkeslættet

setTimeout(\'popKl()\',30000);

function popKl() {
nu = new Date();
klTime = nu.getHours();
klMinut = nu.getMinutes();
tempVar = nu.getSeconds() * 60;
naesteMinut = 60 - tempVar;

for (i=0;i<timen.length;i++){
  if (klTime==timen[i] && klMinut==minuttet[i]) {
    window.open(\"din-side.html\",\"nytVindue\");
    setTimeout(\'popKl()\',30000);
    return;
  }
}
setTimeout(\"popKl()\",1000);
}
</script>

Så har du også adgang til flere klokkeslet.

hth
jes
Avatar billede roenving Novice
19. september 2001 - 03:12 #10
Ps. Funktionen blev jo aldrig aktiveret, da setTimeout\'en først blev aktiveret hvis funktionen blev sat i gang -- de 30000 jeg har angivet er et check for hvert 30\'te sekund, det skulle måske være 60000, så man ikke fik den to gange for hvert rigtigt klokkeslet !!
;·]
Pps. Husk også at rette den, som stadig står til 1000
Avatar billede Slettet bruger
19. september 2001 - 09:38 #11
Her er en lidt forbedret version af roenvings forbedrede script (forbedringen ligger i indstillingen af klokkeslæt):

<script>
var ks = new Array(\"12:32\",\"14:00\",\"16:00\"); //Klokkeslættene

function popKl() {
nu = new Date();
klTime = nu.getHours();
klMinut = nu.getMinutes();

for (i = 0; i < ks.length; i++) {
mitSplit = ks[i].split(\":\");
minTime = mitSplit[0].parseInt()
mitMinut = mitSplit[1].parseInt()
if (klTime == minTime && klMinut == mitMinut) {
window.open(\"din-side.html\",\"nytVindue\");
}
}
setTimeout(\"popKl()\",1000);
}
tempVar = nu.getSeconds() * 60;
naesteMinut = 60 - tempVar;
setTimeout(\"popKl()\",naesteMinut * 1000);
</script>

Scriptet er også forbedret mht. belastning af brugerens computer, og nu skal du ikke sætte \"popKL()\" i <body onLoad>!
Avatar billede Slettet bruger
19. september 2001 - 09:42 #12
Ups, udskift linjerne:
minTime = mitSplit[0].parseInt()
mitMinut = mitSplit[1].parseInt()
med:
minTime = parseInt(mitSplit[0])
mitMinut = parseInt(mitSplit[1])
Avatar billede ravnborg Nybegynder
19. januar 2002 - 08:56 #13
Tak for hjælpen

V.H.
Ravnborg

PS. Undskyld for den lange vente tid.
Avatar billede Slettet bruger
19. januar 2002 - 14:06 #14
Det gør ikke noget. Man kan altid vente! Så længe spørgeren ikke er ligeglad med éns arbejde.

Tak for points! :)
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