微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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版本。

原文地址:https://www.jb51.cc/aspnet/252319.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐