IE 11 缺少 iFrame [更新] URL 问题

IE 11 missing iFrame [UPDATE] URL issue

内部 "a.aspx" 代码基本上是这样的:

...
<iframe id="b.aspx" frameborder="0" scrolling="no" src=""></iframe>
...

iframe 有空的 SRC 和 runat="server",在代码隐藏 (C#) 中我们做这样的事情:

idOfIFrame.Attributes["src"] = "..."

问题是没有iframe。在查看源代码中,可以清楚地看到我们有一个 "valid" src url,由代码隐藏添加。但是iframe所在的页面是空的

它 运行 好几个月/几年。直到用户升级了IE11.

我有 IE 11.0.9600.18097 11.0.25 (KB3100773),用户有 IE 11.0.9600.18314 11.0.31 (KB3154​​070)。看来这可能是导致问题的原因,因为我升级了,现在我可以在我的开发机器上重现丢失的 iframe。

我花时间玩了一下URL,我在新的浏览器选项卡中打开了里面的小iframe。点击进入,仍然是空的。我应该有代码的地方,什么也没有。

我在 aspx 文件中有这个:

<div>
<asp:GridView>
<Columns>
<asp:TemplateField>
<itemtemplate>
<table>
...

在旧版IE中,显示为:

<div>
 <div>
  <table></table>
 </div>
</div>

在新版IE中,呈现为:

<div>
 <div>

 </div>
</div>

知道问题出在哪里吗? 我可以同时在两台计算机上打开同一页面(所有相同的兼容性设置等等),另一台可以工作,而我的不行。

[更新]

我发现这是一个 URL 问题。 我正在像这样在 C# 中构建 URL:

ifr.Attributes["src"] = "../../xyz.aspx?Module=ToDo&Allow=0&isOk=" + isOk

查看源显示如下:

"../../xyz.aspx?Module=ToDo&amp;Allow=0&amp;isOk=" + isOk

似乎这个版本的 IE 不再识别 URL-s 中的 &amp;。老实说,我认为这是一个 MS IE 11 错误。我的变量默认为零,而不是 URL QueryStringParameter.

的 ID

正如我在上面发布的那样,我发现了问题(请参阅 [更新] 部分)

我的临时修复很简单:

document.getElementById('<%=ifr.ClientID%>').src = document.getElementById('<%=ifr.ClientID%>').src;

是的,我添加了一个重新加载 iFrame 的 JS 东西。基本上 Iframe 现在被加载了两次(一次 ID 为零,一次 ID 正确),这不是解决这个问题的最漂亮的方法,但我很确定这是一个 MSIE11 问题,这会解决现在。