Not sure why, but, in 1.5.2 (at least), the call order is such that
prependJavascript is not called on AjaxRequestTarget until after
constructResponseBody() has passed...

 

                                Iterator<CharSequence> it =
prependJavaScripts.iterator();

                                while (it.hasNext())

                                {

                                                CharSequence js =
it.next();

 
respondInvocation(bodyResponse, js);

                                }

 

...assuring that no prepended scripts are attached to the ajax return.
At least from onBeforeRender().

 

I can freely add any appended script I want, but no prepended ones. This
strikes me as not good. Very bad.

 

My code bits...

 

  @Override

  protected void onBeforeRender () {

 

    if ((activeRequestHandler =
getRequestCycle().getActiveRequestHandler()) instanceof
AjaxRequestTarget) {

      ((AjaxRequestTarget)activeRequestHandler). prependJavaScript
("alert('never called')");

      ((AjaxRequestTarget)activeRequestHandler). appendJavaScript
("alert('always called')");

    }

  }

 

David

 

Reply via email to