I need the ability to load and start a GWT App at any time in an Echo2 environment. My first approach was to load and execute the nocache.js in a Client-Server sync using
var script = document.createElement("script");
script.setAttribute("src",javascriptURI);
script.setAttribute("type","text/javascript");
document.getElementsByTagName('body')[0].appendChild(script);
This call basically works, but when the script is executed it operates on an EMPTY document instead of the current document of the Echo2 application. Has the script to be somehow initialized first or is there any event required?
The GWT application/script works fine if it's included in the start-up HTML of the application, so I assume the GWT App to be correct. The original standalone HTML of the GWT App has the HTML script tag in the body as well.
The problem is, that the dowcument.write calls in the nocache.js file only works if the documents has not finished loading. Otherwise document.write will overwrite the whole document.
Therefor the document.write calls have to be replaced by the createElement methods of DOM:
For the first code that adds the script with the marker id:
For the second part (nearly at the end of nocache.js). Replace the "app" with your application name:
So, that was the part that has to be patched in the gwt generated code. Now the html page that loads and starts the application when the user clicks the button:
I know that this is not the best solution but it's the only way it worked until now.