gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:25 25 4
gpt4 key购买 nike

我们有一个巨大的 HMI 和 SCADA 网络应用程序,它提供从几乎任何工厂车间收集数据的功能,并提供可视化和分析功能。

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

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

该产品在IE9及更早版本中运行绝对完美。然而,一旦我们升级了 IE 10,我们就面临着严重的问题。有些与 IE10 不支持的 JavaScript 中的函数/属性有关。

我们主要在 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

最佳答案

有趣的是,我通过分解一个非常小的部分来处理这个例子并发现了问题。

在 IE10 中,如果 <iframe>存在于 <td> 中,以百分比形式给出的 Iframe 的高度宽度属性不会太在意其父级的高度宽度。

如以下示例所示,id 为“test”的 iFrame 的高度宽度 = 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 的宽高属性的方式有问题。

关于java - 无法在 IE 10 中正确打开/显示我​​的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16274535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com