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
> 

Reply via email to