Avatar billede whyme Nybegynder
07. august 2005 - 00:09 Der er 6 kommentarer og
1 løsning

Hvordan ændrer man via javascript en onunload function?

Hej eksperter!

Jeg har en kode i min body tag:

onunload="window.open('osv....')"

Altså hvis man lukker vinduet, kommer der en boks frem og logger personen ud af systemet for en sikkerhedsskyld.

Koden er på index.php

Men det skal ikke ske hvis man smutter hen til
index.php?cid=1
index.php?cid=2
index.php?cid=3
index.php?cid=4
osv. håber du forstår...

Så jeg søger en form for javascript som hvis man submitter en formular/link hen til index.php?cid=1, så fjerner den onunload koden (for at kunne skifte side, uden at logge ud af det).

Håber i forstår, ellers skriv endelig..

Jeg har set mig blind på dette og håber nu at i kan være behjælpelige; på forhånd mange tak.
Avatar billede roenving Novice
07. august 2005 - 01:39 #1
Det simpleste er umiddelbart at have en variabel, som du ved alle onloads sætter til true, men til false, hvis du linker internt eller submitter:

<script type="text/javascript">
var unlog=true;

window.onunload = function(){
  if(unlog){
    window.open(...);
  }
}
</script>

-- og så aflysningen:

<a href="index.php?cid=1" onclick="unlog=false;">Link 1</a>

-- og

<form action="index.php?cid=3" ... onsubmit="unlog=false;/*Andre ting, f.eks. validering*/">
Avatar billede whyme Nybegynder
07. august 2005 - 02:25 #2
Det er lige præcis det script jeg tænkte på, men ikke kunne lave.

Det virker dog ikke lige som forventet...

Jeg har index.php hvor der er disse ting på:

I <head> er der:
<script type="text/javascript">
var unlog=true;

window.onunload = function(){
  if(unlog){
    window.open('sec.php','subWindow','height=200,width=300,top=70,screenY=70,left=262,screenX=262,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,alwaysLowered=no,alwaysRaised=no,dependent=no,hotkeys=no,titlebar=no,z-lock=no,fullscreen=no,channelmode=no');
  }
}
</script>

I body er der (der er mere, men dette ser jeg som relevant):

<form action="index.php" method="get" style="margin: 0px; padding: 0px;" onsubmit="unlog=false;">
<select name="cid" onchange="this.form.submit()">


Hvad gør jeg galt?
Avatar billede roenving Novice
07. august 2005 - 02:31 #3
Tilføjer unlog=false; til onchange _før_ submit-tingen !-)
Avatar billede whyme Nybegynder
07. august 2005 - 14:12 #4
Nå ja, doh giver lidt sig selv :)

Tak, det virker nu.

Bruger følgende:
<select name="cid" onchange="this.form.submit(); unlog=false;">

Kom med et svar :)
Avatar billede roenving Novice
07. august 2005 - 14:15 #5
Ved at placere den efter, risikerer du at der udføres noget onunload før variablen bliver sat, sæt den før submit-tingen !-)

Velbekomme '-)
Avatar billede whyme Nybegynder
07. august 2005 - 14:26 #6
Okay, det er gjort ;)

Mange tak
Avatar billede roenving Novice
07. august 2005 - 14:28 #7
-- og tak for point ;~}
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