【发布时间】:2016-05-23 22:15:13
【问题描述】:
“a.aspx”里面的代码基本上是这样的:
...
<iframe id="b.aspx" frameborder="0" scrolling="no" src=""></iframe>
...
iframe 的 SRC 和 runat="server" 为空,在代码隐藏 (C#) 中,我们执行以下操作:
idOfIFrame.Attributes["src"] = "..."
问题是没有 iframe。在视图源代码中,可以清楚地看到,我们有一个“有效”的 src url,由代码隐藏添加。但是 iframe 所在的页面是空的。
它运行了几个月/几年。直到用户升级了IE11。
我有 IE 11.0.9600.18097 11.0.25 (KB3100773) 而用户有 IE 11.0.9600.18314 11.0.31 (KB3154070)。似乎这可能是导致问题的原因,因为我升级了,现在我可以在我的开发机器上重现丢失的 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&Allow=0&isOk=" + isOk
似乎这个版本的 IE 不再识别 URL-s 中的&amp;。老实说,我认为这是一个 MS IE 11 错误。我的变量默认为零,而不是作为 URL QueryStringParameter 的 ID。
【问题讨论】:
标签: c# asp.net iframe internet-explorer-11