You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Paul Stanton (Commented) (JIRA)" <ji...@apache.org> on 2012/03/22 11:54:23 UTC

[jira] [Commented] (TAP5-1870) javascript added while in the render phase of a component from an ajax request is never executed

    [ https://issues.apache.org/jira/browse/TAP5-1870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13235499#comment-13235499 ] 

Paul Stanton commented on TAP5-1870:
------------------------------------

I've found that the tidiest work around is to put the javascript snippet within the tml of the component:

<t:zone t:id="myZone" id="myZone">
    <t:myComponent />
</t:zone>

myComponent.tml:

<div>
    <p>Component content</p>
    <script type="text/javascript">alert('here');</script>
</div>

This javascript is at least executed every time the component is (re)rendered.

Its an ugly solution but seems to work as a stop gap.
                
> javascript added while in the render phase of a component from an ajax request is never executed
> ------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1870
>                 URL: https://issues.apache.org/jira/browse/TAP5-1870
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3.2
>            Reporter: Paul Stanton
>              Labels: ajax, javascript, zone
>
> When a zone update occurs, the 'setupRender' is called for each component contained by that zone.
> If a script is added to ajaxResponseRenderer within the 'setupRender' method it is never executed on the page.
> eg:
> public class MyPage
> {
>     void onSomeEvent()
>     {
>         ajaxResponseRenderer.addRender(myZone); // myZone contains a MyComponent in the tml
>     }
> }
> public class MyComponent
> {
>     void setupRender()
>     {
>         if (request.isXHR())
>             ajaxResponseRenderer.addCallback(new JavaScriptCallback() { public void run(JavaScriptSupport javascriptSupport) {
>                     javascriptSupport.addScript("alert('here');");}});
>     }
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira