内部" a.aspx"代码基本上看起来像这样:
...
<iframe id="b.aspx" frameborder="0" scrolling="no" src=""></iframe>
...
iframe有空SRC和runat =&#34;服务器&#34;,在代码隐藏(C#)中我们做这样的事情:
idOfIFrame.Attributes["src"] = "..."
问题在于没有iframe。在视图源中,可以清楚地看到,我们有一个&#34;有效的&#34; src url,由codebehind添加。但是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>
知道问题是什么吗? 我可以同时在2台计算机上打开同一页面(所有相同的兼容性设置和所有这些),而另一台可以正常工作,而我的并不是。
[UPDATE]
我发现这是一个网址问题。 我正在使用C#构建URL:
ifr.Attributes["src"] = "../../xyz.aspx?Module=ToDo&Allow=0&isOk=" + isOk
视图来源显示:
"../../xyz.aspx?Module=ToDo&Allow=0&isOk=" + isOk
似乎此版本的IE不再识别URL-s中的&
。老实说,我认为是一个MS IE 11的错误。我的变量默认为零,而不是URL QueryStringParameter的ID。
答案 0 :(得分:0)
正如我上面发布的那样,我发现了这个问题(参见[更新]部分)
我的临时解决方法很简单:
document.getElementById('<%=ifr.ClientID%>').src = document.getElementById('<%=ifr.ClientID%>').src;
是的,我添加了一个重新加载iFrame的JS东西。基本上,iframe现在加载两次(一次使用ID为零,一次使用正确的ID),这不是解决此问题的最佳方法,但我很确定这是一个MSIE11问题,这样就可以了现在。