I think it is WW-1951.

It's generally a bad idea to include inline scripts in a result loaded via XHR because it varies from browser-to-browser and library-to-library as to when the scripts are executed. In this case, Dojo has the responsibility to parse your result, extract the scripts and then execute them (when separateScripts is false and executeScripts is true). If, for example, you only used element.innerHTML directly to update your page the script would not be executed at all (in most browsers). The point is, the Dojo widget is explicitly separating and executing your scripts in the result.

In 2.1, revision #543927, the Bind widget was modified to execute scripts after setting the content. In 2.0, scripts are executed after parsing but before setting the content.

I think you have a couple of options:
- (recommended) refactor your javascript so its not inline. For example, you may be able to listen for an event instead - if you're sure it's only s:submit that has the problem and s:div is okay, have the submit publish a topic and have a s:div subscribe and perform the request itself - patch the widget in struts 2.0 with the same change as in 2.1, and build your own dojo release.

Hope that helps a little,
Jeromy Evans

lbastil wrote:
Is this the WW-1951 - issue?

And if so, is there any workaround for 2.0.11 release?

Thank you,
basti


lbastil wrote:
I have a serious problem with an ajax submit.

the scenario is the following:

I submit a form with ajax submit button and I want to update the parent
div (targets="...")
The original content of this div and the result content contains a
<script> section with
javascript at the very end.

Now the following happens: after pressing the submit button the ajax call
is done correctly.
But after that at first the script is executed, then the DOM is updated by
replacing originally div content with the result from ajax call.

But this is not what I would expect. The javascript for instance changes
some things (like
enabling / disabling form elements), which are then overwritten by the DOM
updating.

The interesting thing is: originally the content of the div is also loaded
/ filled by ajax mechanisms,
but not triggered from <s:submit>. In this first case the javascript is
executed on the exact
order, where it is placed in the code. Why not when doing it via
<s:submit>?

Can anybody explain me what is going on here and suggest a workaround?

Thank you very much in advance,
basti




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to