If you do inject the script, then just
getScript().execute(this, cycle, cycle.getResponseBuilder(), params);

Otherwise, if you use the Script component, you can surround it with an @If
and control when it's rendered

On Tue, Feb 17, 2009 at 6:48 PM, Lentz <patrykziemni...@gmail.com> wrote:
>
> Hello again,
>
> the scripts are not included in the ajax response,
>
> I wrote a component to show the problem in the simpliest form:
>
> ComponentWithIScript.html
>
> <html>
> <body jwcid="$content$">
>
>        Component with IScript
>
>
> </body>
> </html>
>
> ComponentWithIScript.jwc
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE component-specification PUBLIC
>  "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
>  "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd";>
>
> <component-specification allow-body="no" allow-informal-parameters="no">
>
>        <component id="onFocusScript" type="Script">
>                <binding name="script" value="literal:OnFocusScript.script"/>
>        </component>
>
> </component-specification>
>
> OnFocusScript.script
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE script PUBLIC
> "-//Apache Software Foundation//Tapestry Script Specification 3.0//EN"
> "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd";>
>
> <script>
>        <body>
>                <unique>
>                        <![CDATA[
>                                function onFocusShowMessage() {
>                                        alert('hello');
>                                }
>                        ]]>
>                </unique>
>        </body>
> </script>
>
> I tried to find some examples how (or rather in what cases) to use such
> things like:
> cycle.getResponseBuilder().addBodyScript(script); ... etc...but haven't
> found anything interresting..
> or maybe should I include script other way, like <inject property="script"
> type="script" object="OnFocusScript.script"/> and then render it in
> renderComponent method? but my component is more like composite component,
> that consist of standard / my components (each of it has its own
> updateComponent method) I'm not sure if I can add
> MyCompositeComponent.updateComponent extra method..
>
> any ideas how to include he scripts to ajax response?
>
>
> Andreas Andreou-2 wrote:
>>
>> First see if the scripts are included in the ajax response
>> using something like Firebug... they should be
>>
>> Then you just need to see how you define the functions
>> function1, function2, function3
>>
>> There are a few normal ways such as
>> 1) function function1() {...}
>> 2) function1=function() {...)
>> but the scripts (that include those definitions) are not
>> evaluated in the normal window/document scope when in ajax.
>>
>> Anyway, just use
>> window.function1=function() {...)
>>
>>
>> On Fri, Feb 13, 2009 at 1:32 PM, Lentz <patrykziemni...@gmail.com> wrote:
>>>
>>> Hello there,
>>> I'm making a migration from 4.0.2 to 4.1.6. Everything works great except
>>> rendering one of my components by updateComponent function. This
>>> component
>>> is an extended version of contrib:Table. It additionally consist of 3
>>> IScript components. For a first time a page is rendered except that
>>> component (and nothing is there, just empty area, and this is ok, this
>>> was
>>> planned). Then, after submitting, during refreshing this area my
>>> component
>>> should appear. I'm trying to render it this way:
>>> cycle.getResponseBuilder().updateComponent("dynamicArea");
>>>
>>> ..the component was rendered, but the scripts weren't. There are 3
>>> actions
>>> added to my component:
>>>
>>> onfocus=function1();
>>> onblur=function2();
>>> onclick=function3();
>>> ..and when I try to fire them, an error appears:
>>> no function1 found , no function2 found, etc…
>>> ..but if I refresh the page with F5 (normal response, not ajax),
>>> everything
>>> is ok (the javascript functions are rendered in body element). Does
>>> anyone
>>> know how to resolve this problem?
>>> Thanks in advance
>>> Patryk 'Lentz' Ziemnicki
>>>
>>> --
>>> View this message in context:
>>> http://n2.nabble.com/T4.1.6---UpdateComponents-doesn%27t-rebuild-body-element-tp2320775p2320775.html
>>> Sent from the Tapestry Users mailing list archive at Nabble.com.
>>>
>>
>>
>>
>> --
>> Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
>> Tapestry / Tacos developer
>> Open Source / JEE Consulting
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>>
>
> --
> View this message in context: 
> http://n2.nabble.com/T4.1.6---UpdateComponents-doesn%27t-rebuild-body-element-tp2320775p2341882.html
> Sent from the Tapestry Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>



-- 
Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
Tapestry / Tacos developer
Open Source / JEE Consulting

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to