Vraag & Antwoord

Webprogrammeren & scripting

Javascript: onUnload

8 antwoorden
  • Ik heb een pagina gemaakt waar de gebruiker, als er iets op de pagina veranderd, op 'bereken' moet klikken om de verandering daadwerkelijk door te voeren. Als de gebruiker dit niet doet, maar naar een andere pagina op de site gaat heb ik een melding dat de laatste aanpassingen niet doorgevoerd zijn. Deze melding wordt opgeroepen via de onUnload-event die in de body van het html bestand staat. Graag zou ik graag willen dat de gebruiker bij die melding (is nu gewoon een javascript alert) de mogelijkheid krijgt om ervoor te kiezen om niet weg te gaan van de pagina. Weet iemand of en hoe dit mogelijk is? Hopelijk is m'n vraag duidelijk.. :smile: Elja
  • Je kan een onunload niet cancellen bij mijn weten, dat zou namelijk betekenen dat je bijvoorbeeld je browser niet af kan sluiten zonder aan bepaalde voorwaarden te voldoen (die door een webmaster worden gesteld). Maar om eerlijk te zijn weet ik dat niet zeker (heb me d'r nooit mee bezig gehouden).
  • [code:1:96d15f00a4] window.onunload = function () { if(confirm('Do you want to save your changes')) { save(); } } [/code:1:96d15f00a4] Dit werkt in ieder geval in IE6, je zal het zelf in andere browser moeten testen. /E
  • Thx Eelco ! Ik heb het uiteraard nog wat veranderd, maar het werkt prima dus. :smile: Annie: ik had inderdaad ook wel verwacht dat het niet kon, maar het is dus gewoon mogelijk om de gebruiker op eenzelfde pagina te laten door steeds te redirecten naar dezelfde pagina wanneer je van de pagina weg wilt gaan. In mij geval komt er nu dus de melding dat er nog veranderingen zijn gedaan die nog niet zijn doorgevoerd en of deze dus doorgevoerd moeten worden. Zoja, dan wordt het juiste formulier op de pagina ge-submit. Elja
  • Van de forums van delphi.about.com 'geleend' :smile:: [code:1:a5ed8e3c92] <SCRIPT LANGUAGE=JavaScript FOR=window EVENT=onbeforeunload> <!-- var strMsg = 'Leaving this page without using the Preview or Post button will cause your message to be lost.' if (document.ComposeForm.scoop.value==0 && document.frames('idEdit').document.body.innerHTML != '') { window.event.returnValue = strMsg; } // --> </SCRIPT> [/code:1:a5ed8e3c92] Dus zoiets zou moeten werken: [code:1:a5ed8e3c92] <script language="JavaScript" for="window" event="onbeforeunload"> <!-- window.event.returnValue = 'Want to leave?'; // --> </script> [/code:1:a5ed8e3c92] Je krijgt alleen wel altijd een melding, dus dit zorgt niet voor onsluitbare vensters, wat een hele geruststelling is eerlijk gezegd :smile: Ook weet ik niet hoe crossbrowser-compatible dit is, zal je moeten uitproberen...
  • Thx MarkVR, Het 'BeforeUnload' event wordt helaas alleen door IE ondersteund. Ik ben ook wel tevreden met m'n huidige oplossing. Elja
  • Ik weet niet of dit in jouw situatie helemaal van toepassing is maar ik heb dit altijd ontzettend cool gevonden. [code:1:96c0fadb1b] asp: <% Response.Status = "204 No Content" %> perl: print header(-status=>'204 No Response'); php: <? header("Status: 204 No Content"); ?> [/code:1:96c0fadb1b] Dit zorgt er voor dat je aan de server kant db insert, session updates etc. kan doen zonder dat de huidige pagina wordt ververst(geen roundtrip). /E
  • Klinkt inderdaad errug vet, Eelco. :smile: Heb al een tijdje lopen zoeken op het net, maar kan geen pagina vinden waar er een duidelijk voorbeeld van wordt gegeven. Weet jij zo'n pagina toevallig of kun je er wat uitgebreider over vertellen? Elja

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.