В IE 11 отсутствует проблема с URL-адресом iFrame [ОБНОВЛЕНИЕ]

Код внутри "a.aspx" в основном выглядит так:

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

В iframe есть пустой SRC и runat = "server", а в выделенном коде (C #) мы делаем что-то вроде этого:

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

Проблема в том, что нет iframe. В исходном коде представления ясно видно, что у нас есть "действительный" URL-адрес src, добавленный выделенным кодом. Но страница, на которой находится iframe, пуста.

Он работал нормально месяцами / годами. Пока пользователь не обновил IE11.

У меня был IE 11.0.9600.18097 11.0.25 (KB3100773), а у пользователя IE 11.0.9600.18314 11.0.31 (KB3154070). Похоже, это может быть причиной проблемы, потому что я обновился и теперь могу воспроизвести отсутствующий iframe на моей машине разработчика.

Мне потребовалось время, чтобы немного поиграть с URL-адресом, и я открыл внутренний небольшой iframe в новой вкладке браузера. Нажмите Enter, все еще пусто. Там, где у меня должен быть код, ничего нет.

У меня это в файле aspx:

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

В старой версии IE это отображалось как:

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

В новой версии IE он отображается как:

<div>
 <div>

 </div>
</div>

Есть идеи, в чем может быть проблема? Я могу одновременно открыть одну и ту же страницу на 2 компьютерах (все те же настройки совместимости и все такое), а другая работает, а моя - нет.

[ОБНОВИТЬ]

Я обнаружил, что это проблема с URL. Я создаю URL-адрес на C # следующим образом:

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

Источник просмотра показывает это:

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

Похоже, эта версия IE больше не распознает &amp; в URL-адресах. Честно говоря, я считаю, что это ошибка MS IE 11. Моя переменная по умолчанию равна нулю, а не идентификатору, который является параметром URL QueryStringParameter.


person Ash    schedule 17.05.2016    source источник


Ответы (1)


Как я писал выше, я обнаружил проблему (см. Раздел [ОБНОВЛЕНИЕ])

Мое временное исправление таково:

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

Да, я добавил JS, который перезагружает iFrame. В основном Iframe загружается дважды прямо сейчас (один раз с нулевым идентификатором и один раз с правильным идентификатором), что не самый лучший способ исправить это, но я почти уверен, что это проблема MSIE11, и это сработает. теперь.

person Ash    schedule 23.05.2016