Ah. Ok added that, still nothing. I see in the markup that the html has been 
added to the panel's div, though it's not running. Elsewhere on the page 
Javascript is working ok so I don't think it's broken, I just don't think the 
onLoad event is firing for an AjaxLazyLoadPanel.

I'll keep going with these behaviours though, if thats how it should be 
implemented?

cheers for the tips,
Steve




On 21/01/2010, at 3:38 PM, Lionel Port wrote:

> I was looking at the first box.
> 
> add(new AbstractDefaultAjaxBehavior() {
>               @Override
>               protected void onComponentTag(ComponentTag tag) {
>                       super.onComponentTag(tag);
>                       String js = "alert('hello');";
>                       tag.put("onload", js);
>               }
> }
> 
> On Thu, Jan 21, 2010 at 3:31 PM, Steve Swinsburg
> <steve.swinsb...@gmail.com> wrote:
>> Typo in the alert, but even adding logging to the AjaxEventBehavior, it 
>> never fires.
>> 
>> .add(new AjaxEventBehavior("onload"){
>>                protected void onEvent(AjaxRequestTarget target){
>>                        log.error("*************************************");
>>                        target.appendJavascript("alert('hello');");
>>                }
>>        }));
>> 
>> logs show nothing.
>> 
>> Is it because its loading asynchronously after the rest of the page loads? 
>> If so, how can I tap into it?
>> 
>> cheers.
>> 
>> 
>> On 21/01/2010, at 3:26 PM, Steve Swinsburg 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
>>>> 
>>> 
>> 
>> 
> 
> ---------------------------------------------------------------------
> 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