【问题标题】:IE 11 missing iFrame [UPDATE] URL issueIE 11 缺少 iFrame [更新] URL 问题
【发布时间】: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 (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;amp;。老实说,我认为这是一个 MS IE 11 错误。我的变量默认为零,而不是作为 URL QueryStringParameter 的 ID。

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 2019-01-30
      • 2015-10-16
      • 2014-02-23
      • 1970-01-01
      • 2020-11-08
      • 2021-03-01
      • 2014-06-08
      • 1970-01-01
      相关资源
      最近更新 更多