For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!
Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.
<af:document id="d1" onunload="performUnloadEvent" clientComponent="true"> <af:resource type="javascript"> // For Mozilla and Firefox if(window.addEventListener){ window.addEventListener('beforeunload', function (event) { showConfirm(); }) } // For IE else if(window.attachEvent){ window.attachEvent('onbeforeunload', function (event) { showConfirm(); }) } function showConfirm(){ var eventSource = AdfPage.PAGE.findComponentByAbsoluteId('d1'); var sel = confirm("Are you sure you want to exit?"); if(sel==true){ alert('Perform OK Operation'); var x = AdfCustomEvent.queue(eventSource, "handleOnUnload", {result : 'ok'},false); var y = 0; } else { alert('Perform Cancel Operation'); var x = AdfCustomEvent.queue(eventSource, "handleOnUnload", {result : 'cancel'},false); var y = 0; } } </af:resource> <af:serverListener type="handleOnUnload" method="#{UnloadHandler.onUnloadHandler}"/> <af:form id="f1" clientComponent="true"> </af:form> </af:document>
public void onUnloadHandler(ClientEvent clientEvent) { System.out.println("Unload Event fired.."); String outcome = clientEvent.getParameters().get("result").toString(); if(outcome.equalsIgnoreCase("ok")){ System.out.println("Outcome is OK "); // Perform some operation like Commit; } else if(outcome.equalsIgnoreCase("cancel")){ System.out.println("Outcome is Cancel "); // Perform some cleanup operation like Rollback; } }