我们拥有庞大的HMI和SCADA网络应用程序,可从几乎任何工厂车间提供数据采集设施,并提供可视化和分析设施。
该产品基于三种技术。前端和服务器端是JavaScript,Java,数据库引擎是通过JNI连接的C ++。
在前端,我们实际上使用HTML,CSS和JavaScript来创建自己的窗口环境。每个窗口都是一个iFrame,我们在其中动态加载applet。因此,Web应用程序在窗口环境中的HTML iframe中运行Java applet代码,并应用了所有窗口环境功能(如拖动,关闭,打开多个Windows等)。
该产品在IE9及早期版本中运行绝对完美。但是,一旦我们升级IE 10,我们就遇到了严重的问题。有些与IE中的功能/属性有关,IE10不支持。
主要是我们在IE10中挖掘并解决了这些问题:
但是,经过这些小修改之后,我们已经省略了所有JavaScript / HTML异常,但网页无法正常显示。我们咨询MSDN IE 10兼容性烹饪书和很多其他论坛,了解如果网页不符合标准,那么网页无法正确显示的可能性很高,因为IE10规定了严格的标准。
我们在所有HTML中添加了doctype和metainf标签,因此我们在F12开发人员工具中的浏览器模式是IE10,文档模式是IE9标准,但仍然没有改进。
我们正在搜索这个问题一个月左右。阅读IE10的文档,支持和问题,但无法真正找到真正的问题。
页面应显示如下:
目前该页面显示如下:
答案 0 :(得分:0)
有趣的是,我通过打破这个例子非常小的一部分来解决问题。
在IE10中,如果<iframe>
中存在<td>
,则以百分比形式给出的iframe的高度宽度属性不会过多地考虑其父级的高度宽度。
如下例所示,id为'test'的iFrame采用height width = 100%。而它的父母的身高是1px。 在IE10中运行时,框架的高度看起来非常大并且显示异常行为
<HTML>
<HEAD>
</HEAD>
<BODY id="WESWinDesktop" >
<table id=WESStructure width="100%" height="100%" border="2" cellpadding="0" cellspacing="0">
<tr>
<td id="WESMainWinTitleBarCont" height="1px"> this is 'td' for iframe
<iframe id="test" src="" frameborder="0" width="100%" height="100%" scrolling="no"></iframe>
</td>
</tr>
<tr>
<td id="WESMainWinMenuBar" height="20"> menu bar
</td>
</tr>
<tr>
<td height="100%" >content
</td>
</tr>
<tr>
<td id="WESMainWinStatus" height="20"> status bar
</td>
</tr>
</table>
</BODY>
</HTML>
我通过放置<div>
而不是<td>
尝试了相同的操作,但行为是相同的。所以我猜IE10解释iframe的宽度高度属性的方式有问题。