Thursday, May 26, 2016

jsinterop: GWT app as a widdget: default script injection fails.

Hi,

This issue has been discussed before https://github.com/gwtproject/gwt/issues/9264

Here is the problem in my own words:

When a script is injected GWT has the option to inject it in the TOP_WINDOW ($wnd) or in the iframe window where GWT code is located normally.

Case 1: Insert in $wnd

Everything works but the page is polluted with the scripts you inject. This is not a problem when the GWT application controls the whole page. It is however a problem when GWT program is loaded as part of a page (Widget). Then all kind of problems may arise due to javascript libraries clashing.

Case 2: insert in iframe window (default)

The script is loaded but jsinterop assumes that the scripts are loaded in $wnd which is not true.

Question:

Is it possible to
1) add a compile time flag in jsinterop that will not prepend $wnd in all global objects defined by the script ...OR...
2) add a namespace JsPackage.LOCAL (as opposed to JsPackage.GLOBAL) option that does not imply $wnd ...OR...
3) do something that fixes the problem somehow!

--
Vassilis Virvilis

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment