How one button of button type can break the whole application
By Kirill (on 2010-11-27 @ 18:54:57, in General, read 8787 times)
As mentioned in Dear NATO, could you please spell it for me?, you can spell any phrase in NATO alphabet. But there was a problem with the gadget - you could not install the accelerator in Internet Explorer 9, although you were warned that you could if you had IE8.
So, it was time to fix it. And the fix was relatively easy (IE9 has "Trident/5.0", instead of expected "Trident/4.0"; and it has been addressed in http://www.ieaddons.com/script/ie8gallery.js). Save, compile with freshly installed Google Web Toolkit 2.1.0, publish... and the gadget does not work at all, does not even appear. Turned out that 2.1.0 works worse than 1.3.8 in IE9 - it throws an exception and stops loading the script. And apparently, it's a known issue - some GWT applications are broken in IE9 with INVALID_CHARACTER exception - with a reasonable explanation. And there is even a proposed solution, which, as far as I can see, will not work (createElement is still called with > and < characters in the argument). So, time to find out which createElement causes us such a pain.
Drum, please... It's a <BUTTON type="button">
In other words, if you try to create a regular button in your GWT 2.1.0 application, your app will not work in IE9. I guess, apps that do work in IE9 don't use buttons (Huh?)
The fix for the fix was to compile the project with Pretty output (Detailed seems to avoid literal strings all together), find createElement("<BUTTON
and apply the workaround from MSDN.
Happy translating in Internet Explorer 9!
|