Ik ben naarstig op zoek naar een manier om een pagina te beveiligen tegen het ongevraagd wegnavigeren. Ik kwam als oplossing de functie onBeforeUnload tegen. Echter is het nadeel van die functie dat je hem niet kunt uitzetten wanneer er bewust van de pagina weggenavigeerd wordt om gegevens te verzenden bijvoorbeeld. Ik ben benieuwd of iemand een alternatieve oplossing weet?
Onderstaand voorbeeld werk anders niet bij mij, dus als je een voorbeeld zou kunnen plaatsen dan graag:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> <script language="javascript" type="text/javascript"> var bCheck = new Boolean(true); function unloadCheck() { if (bCheck == true) { event.returnValue = "Any string value here forces a dialog box to appear before closing the window."; } } function disableUnloadCheck() { bCheck = false; } </script> </head> <body onbeforeunload="unloadCheck()"> <a href="javascript:disableUnloadCheck()">klik!</a> </body> </html> |
Dat script werkt denk ik niet omdat de onbeforeunload eerder uitgevoerd wordt dan de functie disableUnloadCheck 
Ik denk dat je beter een 'save' functie kunt inbouwen, en zolang die nog niet gebruikt is dan sowieso die dialog laten verschijnen.
Ik denk dat je beter een 'save' functie kunt inbouwen, en zolang die nog niet gebruikt is dan sowieso die dialog laten verschijnen.
Een extra check inbouwen dat onsubmit van een formulier die onbeforeunload uitschakelt. Volgens mij wordt de onsubmit voor de onbeforeunload uitgevoerd als het een beetje logisch geïmplementeerd is, dus dat is mogelijk.
Maar hoe wil je het verschil tussen een bewust sluiten van de pagina en een onbewust sluiten van de pagina te weten komen? Dat is vrij onmogelijk, een browser ziet er geen verschil tussen. Je kan eventueel nog eerst een functie door de user laten triggeren om ervoor te zorgen dat het niet per ongeluk kan gebeuren, maar dan ga je al veeleisend zijn tegenover je user
.
André heeft gelijk, mijn interpretatie van je verhaal is niet geheel juist
Maar hoe wil je het verschil tussen een bewust sluiten van de pagina en een onbewust sluiten van de pagina te weten komen? Dat is vrij onmogelijk, een browser ziet er geen verschil tussen. Je kan eventueel nog eerst een functie door de user laten triggeren om ervoor te zorgen dat het niet per ongeluk kan gebeuren, maar dan ga je al veeleisend zijn tegenover je user
André heeft gelijk, mijn interpretatie van je verhaal is niet geheel juist
[ Voor 7% gewijzigd door coubertin119 op 17-05-2005 16:58 ]
Skat! Skat! Skat!
Yes het werk! Die submit wordt inderdaad uitgevoerd voor de onbeforeunload. Hartelijk bedankt!
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> <script language="javascript" type="text/javascript"> var bCheck = new Boolean(true); function unloadCheck() { if (bCheck == true) { event.returnValue = "Any string value here forces a dialog box to appear before closing the window."; } } function disableUnloadCheck() { bCheck = false; } </script> </head> <body onbeforeunload="unloadCheck()"> <form onSubmit="disableUnloadCheck()" action="http://www.google.nl"> <input type="submit"> </form> </body> </html> |
[ Voor 16% gewijzigd door Verwijderd op 17-05-2005 17:03 ]
Pagina: 1