class SomePanel extends Panel implements IHeaderContributor { public SomePanel(String id) { super(id); } public void renderHead(IHeaderResponse response) { response.renderOnDomReadyJavascript("alert('hello');"); } } Sven
Steve Swinsburg-3 wrote: > > 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 >> > > > -- View this message in context: http://old.nabble.com/onAfterRender-called-twice-in-AjaxLazyLoadPanel-tp27252299p27253924.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org