因此,我有一个GWT应用程序,在IE6-8和大多数现代浏览器中都能很好地工作。不幸的是,由于IE9在<select>
元素上处理onchange
事件的已知错误,在IE9中它几乎不可用。GWT IE9模拟IE8
因此,我们没有将客户降级到IE8,而是让IE9模拟IE8。我把这个元标记在我的GWT主页:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
当我看到IE9的开发者工具(F12),我看到它的“浏览器模式” IE9和“文档模式”为IE8标准。但是,GWT应用程序无法加载:它在GWT生成的压缩和混淆JavaScript函数之一中给我一个JavaScript错误。我没有能力通过IE调试到应用程序,所以我无法弄清楚这是怎么回事。
我怀疑它与GWT检测正在使用哪个浏览器的方式有关,并为该会话加载适当的资源。
编辑补充:当我尝试使用IE=8
,而不是IE=EmulateIE8
,开发工具仍然报告IE9/IE9标准模式和所有相同的onchange
事件的问题存在,当我在香草IE9运行的。
有没有一种工作方式可以使IE9在http-equiv
元标记的模式下模拟IE8标准模式,这与GWT 2.4一起使用?
你有没有试过IE8而不是EmulateIE8? –
@ThomasBroyer - 是的。我已经更新了我的问题。当我使用“IE = 8”,它是[正确的语法](http://msdn.microsoft.com/zh-cn/library/ie/ms533876(v = vs.85).aspx)时,浏览器报告本身就是在标准模式下的IE9,并且相应地表现出来(也就是说,我的应用程序不起作用)。 –
不是很有帮助,但是您试图实现的目标是强制IE9在您的GWT应用程序的IE8兼容模式下工作。哪些可能或可能不会帮助您解决此特定的事件处理问题。我的意思是,它仍然值得尝试,但毕竟不能保证所需的行为。据我所知,兼容模式主要是渲染问题。 – alexp