Hi Lionel, Thanks and yes, thats what I am trying to do, attach some javascript after something has rendered. So I attached an AjaxEventBehaviour to it and now have this:
add(new AjaxLazyLoadPanel("myPanel") { @Override public Component getLazyLoadComponent(String markupId) { return new SomePanel(markupId); } }.add(new AjaxEventBehavior("onload"){ protected void onEvent(AjaxRequestTarget target){ target.appendJavascript("alert('hello)';"); } })); but the javascript is never fired. Any more ideas? cheers, Steve On 21/01/2010, at 3:09 PM, Lionel Port wrote: > Hi Steve, > > Are you trying to do this.. > > http://cwiki.apache.org/WICKET/adding-javascript-from-wicket.html > > with an onload event instead of onblur, or do I misunderstand. > > regards, > Lionel > > On Thu, Jan 21, 2010 at 2:56 PM, Steve Swinsburg > <steve.swinsb...@gmail.com> wrote: >> So overriding onAfterRender for a component doesn't just override it for >> that instance of the component? >> >> Also I can see the markup is being added to the end of the page after the >> closing HTML. However, the Javadocs say it is meant to be called after after >> the actual component is finished rendering. So it look s like onAfterRender >> is not what I need. >> >> Can I attach to a different phase in the render lifecycle to call the >> javascript when that specific panel has just finished rendering? >> >> thanks, >> Steve >> >> >> >> >> On 21/01/2010, at 2:52 PM, Igor Vaynberg wrote: >> >>> you are writing out javascript after every component render... >>> >>> perhaps you should keep a boolean flag that marks if you rendered the >>> js yet or not. >>> >>> alternatively you can add a behavior to the panel with istemporary() { >>> return true; } >>> >>> -igor >>> >>> On Wed, Jan 20, 2010 at 7:24 PM, Steve Swinsburg >>> <steve.swinsb...@gmail.com> wrote: >>>> I have an AjaxLazyLoadPanel and want some javascript to fire after its >>>> loaded it's contents: >>>> >>>> I assumed I could override onAfterRender and add my javascript like so: >>>> >>>> add(new AjaxLazyLoadPanel("myPanel") { >>>> >>>> @Override >>>> public Component getLazyLoadComponent(String markupId) { >>>> return new SomePamel(markupId); >>>> } >>>> >>>> @Override >>>> protected void onAfterRender() { >>>> JavascriptUtils.writeJavascript(getResponse(), >>>> "alert('hello');"); >>>> super.onAfterRender(); >>>> } >>>> >>>> }); >>>> >>>> Except it is called twice, it looks like once when the page is loading and >>>> then again when the actual panel has been loaded. >>>> >>>> Is there another way to achieve what I want? >>>> >>>> thanks, >>>> Steve >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org >