frameset onunload probleem

Pagina: 1
Acties:

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 28-08 11:04
dag iedereen,

heb de volgende situatie. Ik wil opvangen dat iemand de browser afsluit
en zodoende een logout actie onderneemt...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script language=javascript>
<!--    
function showLogOffWindow()
    {
        var logoutwindow = 
        window.open(
            "inloggen/logoutunload.asp",
            null,
            "toolbar=no,width=250,height=80,resizable=0,left="+(screen.width-250) / 2+",top="+(screen.height-80) / 2+""
                    );
        logoutwindow.focus();
    }
// -->
</script>


en de asp pagina heeft het volgende
code:
1
onnunload="showLogOffWindow()"


Nu werkt dat opzich prima, behalve als iemand op F5 drukt hij ook uitgelogd wordt...

Iemand een idee hoe ik dit kan voorkomen? Of is een andere aanpak wenselijk?

[ Voor 8% gewijzigd door party42 op 29-11-2002 10:41 ]

Everyday's an endless stream, of cigarettes and magazines...


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
HTML:
1
onnunload="showLogOffWindow()"

>>
HTML:
1
onunload="showLogOffWindow()"


Verder zou je bijvoorbeeld kunnen kijken of het parent window (opener) nog bestaat.. Als dat niet zo is, weet je dat het venster niet is gereload, maar echt verdwenen.. weet verder ook niet 100% of dit gaat werken :?

edit:
lijkt niet te gaan werken

[ Voor 82% gewijzigd door r0bert op 29-11-2002 11:34 ]


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 28-08 11:04
lol

hehe
verkeerde copy / paste

maargoed.

zoals ik al zei, het werkt wel (met 1 n, zoals ik het had).. alleen een beetje te goed

Everyday's an endless stream, of cigarettes and magazines...


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Misschien dat het hiermee lukt..

in logoutunload.asp:
HTML:
1
<body onLoad="if (window.opener.location.href) window.close(); //als window.opener.location.href waarde heeft, is er gereload">

[edit]
Misschien is dit beter:
HTML:
1
<body onBeforeLoad="if (window.opener.location.href) window.close();">

[ Voor 28% gewijzigd door r0bert op 29-11-2002 11:46 ]


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 28-08 11:04
nee werkt niet

ook na het drukken op F5 wordt de user gewoon uitgelogd.

Ik denk dat ik maar een keypress filter ga maken...

mocht iemand op F5 drukken of CTRL-R dat hij dan de onunload overslaat

Everyday's an endless stream, of cigarettes and magazines...


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Ja, je moet gewoon zorgen dat het scriptje uit wordt gevoerd voordat de pagina geladen is/wordt..

Vandaar dat onLoad niet genoeg is, want dat wordt gefired nadat de pagina is ingeladen (toch :?) en ik weet niet of onbeforeload wel een geldige event is ..

Je zou het gewoon bovenin de body kunnen plaatsen o.i.d.

edit:
Alleen onbeforeunload bestaat volgens msdn:
http://msdn.microsoft.com...html/reference/events.asp


domdomdom.. je ASP om uit te loggen wordt natuurlijk eerder uitgevoerd dan de JSjes.. daar moet je dus even een oplossing voor vinden (doorverwijzing bijv.) ..

[ Voor 34% gewijzigd door r0bert op 29-11-2002 11:55 ]


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 28-08 11:04
solution (for those who care :) )

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script>
<!--    
function showLogOffWindow()
    {
    var code = 0;
    code = event.keyCode;
    if (code==0)
    {
        return false;
    }
    else
    {   
        var logoutwindow = 
        window.open(
            "inloggen/logoutunload.asp",
            null,
            "toolbar=no,width=250,height=80,resizable=0,left="+(screen.width-250) / 2+",top="+(screen.height-80) / 2+""
                    );
        logoutwindow.focus();
    }
    }
// -->
</script>

[ Voor 21% gewijzigd door party42 op 29-11-2002 11:58 . Reden: stond nog een alert(); in ]

Everyday's an endless stream, of cigarettes and magazines...


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
En als iemand nou op de refresh button *klikt* dan ?

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 28-08 11:04
niet waar
http://msdn.microsoft.com...rence/events/onunload.asp
domdomdom.. je ASP om uit te loggen wordt natuurlijk eerder uitgevoerd dan de JSjes.. daar moet je dus even een oplossing voor vinden (doorverwijzing bijv.) ..
zie oplossing hierboven... zo werkt het wel...

nav buttons in IE hebben als code (blijkbaar) 0
dus vandaar...
En als iemand nou op de refresh button *klikt* dan ?
werkt ook!

[ Voor 7% gewijzigd door party42 op 29-11-2002 11:57 ]

Everyday's an endless stream, of cigarettes and magazines...


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Ok! Toppie dan!

Ik was hiermee aan het klooien:
HTML:
1
2
3
4
5
6
<body>
<script language="Javascript" type="text/javascript">
if (window.opener.location.href) window.close();
document.location.replace('inloggen/logoutunload.asp');
</script>
</body>

dat dan in een tussenbestandje (de popup zeg maar die je opent)

En dan redirecten,
maar zo is het dus ook prima opgelost :P dus ik geef het verder op! moet supersnel richting school :)
Pagina: 1