IE 11缺少iFrame [UPDATE]网址问题

时间:2016-05-17 16:08:48

标签: c# asp.net iframe internet-explorer-11

内部" 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(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>

知道问题是什么吗? 我可以同时在2台计算机上打开同一页面(所有相同的兼容性设置和所有这些),而另一台可以正常工作,而我的并不是。

[UPDATE]

我发现这是一个网址问题。 我正在使用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。

1 个答案:

答案 0 :(得分:0)

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

我的临时解决方法很简单:

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

是的,我添加了一个重新加载iFrame的JS东西。基本上,iframe现在加载两次(一次使用ID为零,一次使用正确的ID),这不是解决此问题的最佳方法,但我很确定这是一个MSIE11问题,​​这样就可以了现在。