I ran into this issue a while back and proposed an IOnLoadContributor
interface that kind of mirrors all the good work of IHeaderContributor, but
for script that is inserted anywhere below </head>, such as onload, or
script blocks in the actual body.
http://www.nabble.com/rfc-OnLoadContributor-tf2609406.html#a7282114

I'm getting around it now by having my Behaviors check the Target type in
onRendered, which works great for Ajax requests. For non-ajax, you need to
worry if the script block will end up in a place that isn't cool for ie.

On 1/23/07, Vincent Demay <[EMAIL PROTECTED]> wrote:

Hi all,

When I re-render a Dojo widget via an ajaxRequestTarget, I have to add
some javascript to the request depending on which widget(component) has
been added to the target. This javascript should be added in order to
re-parse new DojoWidget (from the ajax response) with dojo API. This
kind of parsing should only be done on top level Dojo component because
during parsing sub-dojo-components will be automaticaly parsed.

Actually what I need to do is  :

before sending response
1 - looking for all component added to the target
2 - for all top-level Dojo components :
       Adding its id to a map
3 - adding a js such as

djConfig.searchIds = ['id1','id2','id3'];dojo.hostenv.makeWidgets().

My problem is I can not do a such stuff in a ajaxBehavior.respond
because this should be done once by request and i do not have any access
to the component list added to the target. On the other hand I can not
extends AjaxRequestTarget because If i do that I can not use AjaxLink or
other Ajax* to re-render a Dojo Component.

So I thought to add a listener on AjaxRequestTarget that should be
called after respondComponent in respondComponents method such as a
IAjaxResponseListener with a onRender(Map/* <String,Component>
*/markupIdToComponent, AjaxRequestTarget target) method.

Have you a better idea and WDYT about listener?

thanks a lot

--
Vincent

Reply via email to