Hi, You need to make an Ajax call to the server.
On Mon, Nov 11, 2013 at 2:10 PM, Daniela L <danigal...@gmail.com> wrote: > Hi, > this is my first question, so i hope I get everything right. > > I am trying to catch the event of the user closing the browser window in > wicket. > > I followed this example: > > > http://stackoverflow.com/questions/16527463/call-java-component-from-javascript-and-retreive-value > > and I managed to get the example working so the message is displayed, but I > have no idea how to get the event triggered by the javascript function in > wicket. I need this because when the user closes the browser window I want > to update some data in my database. > Here is what I have tryed: > > > RequiredTextField<String> myTextField = new > RequiredTextField<String>("myTextField"); > myTextField.setOutputMarkupPlaceholderTag(true); > myTextField.add(new PageExitWarningBehavior(){ > @Override > public void onEvent(Component component, IEvent<?> event) > { > //this isn't ever called > MySession.get().releaseBlockedDataFromDatabase(); > } > }); > > public class PageExitWarningBehavior extends Behavior { > @Override > public void renderHead(Component component, IHeaderResponse > response) { > super.renderHead(component, response); > response.render(new > OnDomReadyHeaderItem("window.onbeforeunload = function (e) {" > + "Wicket.Ajax.get({u: '"+getCallbackUrl()+"', async: false});" > + "var message = 'Your confirmation message goes > here.'," + "e = e || window.event;" + "if (e) {" > + "e.returnValue = message;" + "}" + "return message;" + > "};")); > } > } > > What am I missing? Thank you very much in advance :-) >