无法在IE 10中正确打开/显示我​​的Web应用程序

时间:2013-04-29 08:44:14

标签: java javascript css internet-explorer-9 internet-explorer-10

我们拥有庞大的HMI和SCADA网络应用程序,可从几乎任何工厂车间提供数据采集设施,并提供可视化和分析设施。

该产品基于三种技术。前端和服务器端是JavaScript,Java,数据库引擎是通过JNI连接的C ++。

在前端,我们实际上使用HTML,CSS和JavaScript来创建自己的窗口环境。每个窗口都是一个iFrame,我们在其中动态加载applet。因此,Web应用程序在窗口环境中的HTML iframe中运行Java applet代码,并应用了所有窗口环境功能(如拖动,关闭,打开多个Windows等)。

该产品在IE9及早期版本中运行绝对完美。但是,一旦我们升级IE 10,我们就遇到了严重的问题。有些与IE中的功能/属性有关,IE10不支持。

主要是我们在IE10中挖掘并解决了这些问题:

  • 如果没有JavaScript中的'this'指针,很多方法都无法访问:我们添加了'this'指针来解决它
  • IE10不支持
  • element.getAttribute(“style”)。我们使用替代document.style来完成它

但是,经过这些小修改之后,我们已经省略了所有JavaScript / HTML异常,但网页无法正常显示。我们咨询MSDN IE 10兼容性烹饪书和很多其他论坛,了解如果网页不符合标准,那么网页无法正确显示的可能性很高,因为IE10规定了严格的标准。

我们在所有HTML中添加了doctype和metainf标签,因此我们在F12开发人员工具中的浏览器模式是IE10,文档模式是IE9标准,但仍然没有改进。

我们正在搜索这个问题一个月左右。阅读IE10的文档,支持和问题,但无法真正找到真正的问题。

页面应显示如下:

enter image description here

目前该页面显示如下:

enter image description here

1 个答案:

答案 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的宽度高度属性的方式有问题。