Hi Alessandro, thank you for your work.
Another idea of mine is to replace the document.write things with string concats and innerHTML. In my opinion innerHTML keeps working - even in XHTML documents. If this should work, this is in my opinion the easier way to get a cross browser XHTML compatible solution. Can you test this? Cheers, Sebastian Alessandro Sala schrieb: > Ciao Sebastian, >>> > The reason I didn't replace document.write() entirely is that while >>> > testing I found that >>> > adding script elements using DOM methods doesn't work reliably in >>> IE 6: > the script nodes >>> > gets added, but it seems they are parsed in the wrong order (or not >>> at > all): the result is that while >>> > loading you get several errors and the application doesn't work: >>> because > of this the includer first tries >>> > document.write() and only if it fails it switches to using DOM. >>> >> >> Maybe it does help to insert the scripts inside a parent first. E.g. >> put all script elements in a div element first. And after all these >> children are inside add this div to the document itself. >> >> > > This does not help. I also tried using a DocumentFragment node as a > container, but the result was always the same: it seems to me that IE 6 > is sort-of asynchronous when loading the javascript source of the script > nodes added by DOM methods; when the appendChild() method returns, the > source is not guaranteed to be fully loaded, and this explains the > problems I mentioned above. > > To further support this theory there is the fact that if you insert an > alert() after adding every node, all scripts load fine and without > errors. > > So the problem seems how to guarantee that a script node is fully loaded > before adding the following one. > > Given this, and reading your suggestion about XMLHttpRequest, the first > approach I tried was to read the script source using a synchronous > XMLHttpRequest and then adding the script node with its text property > set to the request's responseText. This works but makes debugging > difficult since all scripts get merged into one very big document. > > So I tried a different approach: I used the synchronous XMLHttpRequest > to force the browser to read the script source in its entirety, then I > appendChild()ed the script node with the same source: since the script > source is already into the browser cache it is parsed immediately and > all works fine. This way I finally got rid of document.write(). > > I tested this solution with Opera 9, IE 6, FireFox 1.5.0.6 & 2.0RC3 and > all worked without problems. > > If you agree with this approach, I can commit the change to SVN this > evening. > > Alessandro > > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > ------------------------------------------------------------------------ > > _______________________________________________ > qooxdoo-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ qooxdoo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
