I guess doesn't need to extend AjaxBehaviour as it doesn't have any ajax.

Try.

add(new AbstractBehavior() {
               @Override
               protected void onComponentTag(ComponentTag tag) {
                       super.onComponentTag(tag);
                       String js = "alert('hello');";
                       tag.put("onload", js);
               }
}


On Thu, Jan 21, 2010 at 3:38 PM, Lionel Port <lionel.p...@gmail.com> 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

Reply via email to