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 :-)
>

Reply via email to