asp.net – 安装更新KB3154​​070后,iframe不会在IE中加载

前端之家收集整理的这篇文章主要介绍了asp.net – 安装更新KB3154​​070后,iframe不会在IE中加载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个主要处理iframe的应用程序(根据需要加载应用程序中的不同页面)

最近IE浏览器更新了KB3154070(当前的IE版本:11.0.9600.18314)作为系统更新的一部分。在更新之后,大部分功能正在彻底打破。它影响了所有使用iframe的页面内容未加载,并导致空白页。当在网络面板中检查时,请求似乎被中止,如下图所示。
Network Traffic Capture

我们执行了以下故障排除

我们确保所有iframe标签都正确关闭
iframe的src不为空。
如果我们访问同一页面(不加载到iframe中),它可以正常工作。但是问题只在于iframe中。
作为此问题的快速解决方法,我们已要求我们的用户回滚更新。但是,这不是预期的解决方案。

您的帮助非常感激。

问候,
Swajay。

解决方法

@ Matt的回答提供了一个关于如何解决问题的线索。看起来,安装了KB3154​​070的IE,如果iframe在父DOM树准备好之前启动任何脚本操作,就会阻止iframe内容。如果由iframe加载的资源不包含脚本,我注意到没有阻塞。我也注意到有时IE不会用脚本阻止内容,但这可能是由于父DOM正在准备好和iframe资源加载之间的竞争条件。

另外一个观察结果是,我在边缘模式下运行IE时没有看到任何iframe加载问题。似乎问题只在兼容模式下运行时才会出现。

为了解决我工作的项目的问题,我扼死了iframe,在那里我声明src属性没有任何价值。在主页的onload处理程序中,这表示DOM树已经准备就绪 – 我使用javascript来设置iframe的src属性。这样做似乎可以正常工作,iframe正确加载。

例如,说你有以下几点:

<iframe id="myIFrame"></iframe>

在你的onload处理程序中,你有一些类似于

document.getElementById('myIFrame').src = '/whatever/url/to/load';

我仍然认为KB3154​​070引入了一个回归错误(如果没有错误),但也许我建议可以应用于您的应用程序。

UPDATE

IE update KB317016似乎修复了iframe加载问题。微软已经正式认出了这个错误KB3176757

我打算保留我的更改,因为我们的一些客户可能无法立即更新IE。此外,所做的更改仍然适用于我们需要支持的所有IE版本。

猜你在找的asp.Net相关文章