Avatar billede klas Juniormester
20. november 2003 - 17:24 Der er 21 kommentarer og
1 løsning

popup ved window close.

Hejsa,

Jeg har et lille popup vindue, som jeg egentlig gerne vil have først kommer frem når folk forlader siden. min kode ser nu således ud:
<%
If Request.Cookies("vispopup") <> "set" Then
Response.Write "<script type=""text/javascript"">window.open(""popup.asp"",""Møbelarkitekten"",""height=350,width=200,toolbar=0,status=0,menubar=0"")</script>"
Response.Cookies("vispopup") = "set"
Response.Cookies("vispopup").Expires = Date + 365
End If
%>

Kan jeg modificere denne kode så den først kommer frem ved window.close ?

På forhånd tak :)
Avatar billede flash-man Nybegynder
20. november 2003 - 17:26 #1
Ehm.. sæt popup-vinduet ind i en funktion.. f.eks

function farvel(){
popup-vindueåben....blabla
}

Og så tilføjer du i body:

<body onUnLoad="farvel()">
Avatar billede klas Juniormester
20. november 2003 - 18:38 #2
det lyder meget fornuftigt, hvor kan jeg skrive den funktion, og hvordan skal den se ud for at den virker ?
Avatar billede roenving Novice
20. november 2003 - 18:43 #3
<%
If Request.Cookies("vispopup") <> "set" Then
Response.Write "<script type=""text/javascript"">function farvel(){window.open(""popup.asp"",""Møbelarkitekten"",""height=350,width=200,toolbar=0,status=0,menubar=0"")}</script>"
Response.Cookies("vispopup") = "set"
Response.Cookies("vispopup").Expires = Date + 365
End If
%>
Avatar billede klas Juniormester
20. november 2003 - 19:18 #4
? der står da vist ingen steder at det er ved window close ?
Avatar billede roenving Novice
20. november 2003 - 19:20 #5
Der skal du bare sætte flash-mans kode fra 17:26:46 ind i dit body-tag !-)
Avatar billede klas Juniormester
20. november 2003 - 19:37 #6
uuh  :)  det vil jeg lige prøve
Avatar billede klas Juniormester
20. november 2003 - 19:47 #7
det virker ikke ?  der sker overhovedet ingenting.. ingen fejl og ingen popup vinduer
Avatar billede roenving Novice
20. november 2003 - 19:56 #8
Måske er det fordi siden når at lukke før popup-vinduet er tilstrækkeligt initialiseret, det kan du teste med en alert:

Response.Write "<script type=""text/javascript"">function farvel(){alert('På')}</script>"
Avatar billede klas Juniormester
20. november 2003 - 20:00 #9
Det virker fint nok,, hvad gør jeg så for at den kan nå at følge med ?
Avatar billede roenving Novice
20. november 2003 - 20:05 #10
Hvor kompliceret er din popup.asp ?-)

Måske den vil kunne komme frem, hvis den var _meget_ simpel !-)

-- der er også den mulighed at benytte sig af eventen onbeforeunload, men det er en IE4/Win-specifik ting, som ikke vil virke i andet !-)

Altså:

<body onbeforeunload="farvel()">
Avatar billede klas Juniormester
20. november 2003 - 20:07 #11
det skal virker i så mange browsers som muligt.. Det betyder vel ikke noget hvor stor den popup er, den skal jo ikke loades i selve scriptet ?
Avatar billede roenving Novice
20. november 2003 - 20:11 #12
Det er tiden, som går inden den er fremme hos klienten, som tæller ...

-- for javascriptet bliver udført i et adresserum, som hører til det vindue, som er åbent, så når vinduet lukkes findes javascriptet ikke mere, og kan derfor ikke fuldføre sin gerning, hvis det ikke er færdigt !-)
Avatar billede klas Juniormester
20. november 2003 - 20:14 #13
ok, men det kan da ikke passe at det ikke kan laves ?
Avatar billede roenving Novice
20. november 2003 - 20:18 #14
-- et generelt problem !o]

-- forøvrigt ville jeg selv blive edderrasende hvis der var nogen som smed en popup i hovedet på mig, jeg ikke selv havde bedt om (hvis jeg overhovedet opdagede at popup-killeren havde lavet noget !-)
Avatar billede klas Juniormester
20. november 2003 - 20:24 #15
tjoe.. det er et yderst effektivt værktøj, vi har brugt popup som kommer med det samme siden åbnes, i snart et år. Der har ikke været nogle klager, og vi har oplevet en markant forbedring i antallet af tilmeldinger til vores nyhedsbrev - og besøgende på siden generelt  :)

men jeg synes selv at det er for anmasende at den kommer med det samme, tror den er mere effektiv hvis brugerne ser den efter de har været rundt på siden.. I langt de fleste tilfælde er vores brugere meget tilfredse med siden, og har ikke noget imod at blive mindet om at de kan modtage et nyhedsbrev, eller tilføje siden til deres favorit links, efter et velbestået første besøg :) som du kan se på koden, så er der jo også cookie beskyttelse på som først udløber efter et år.. så det er ikke fordi vi spammer forvildt omkring os med de popup er  :)
Avatar billede roenving Novice
20. november 2003 - 20:32 #16
-- kan jo være at I ikke gør, men popups er blevet noget, som man kun bruger hvis det er nødvendigt, da der er så meget popup-spam !-)

-- hvis du vil undgå det anmassende, kunne du jo sætte den til at komme frem, når de har været på siden i et antal sekunder (her 20 s. !-)

<body onload="setTimeout('farvel()',20000);">
Avatar billede klas Juniormester
20. november 2003 - 20:49 #17
fin ide :)  det vil jeg prøve
Avatar billede klas Juniormester
20. november 2003 - 21:02 #18
der kommer en javascript fejl efter 20 sek ? "object expected" linie 1 char 1 etc.
Avatar billede roenving Novice
20. november 2003 - 21:04 #19
-- du skal stadig indsætte funktionen ...
Avatar billede klas Juniormester
20. november 2003 - 21:09 #20
Den er også indsat :)
Avatar billede roenving Novice
20. november 2003 - 21:11 #21
-- prøv at vise koden, når den er genereret (altså uden asp-tingene, som jo ikke sendes til browseren !-)
Avatar billede klas Juniormester
02. marts 2005 - 14:15 #22
det er vist på tide at lukke..
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
Kurser inden for grundlæggende programmering

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