Изменение src iframe в режиме IE5 quirks вызывает полное изменение страницы

У меня есть контент, который загружается в стандартный фрейм. У меня нет контроля над родительским фреймом, который переводит браузер в режим IE5 Quirks. Теперь в моем собственном контенте я пытаюсь изменить источник iframe. Я использую следующий код:

function loadIframe(iframeName, url) {
  var $iframe = $('#' + iframeName);
  if ( $iframe.length ) {
    $iframe.attr('src',url);   
    return false;
  }
  return true;
}
loadIframe('frameID', '../myhtmlpage.html');

Проблема в том, что когда я пытаюсь загрузить новый src в iframe, все окно перезагружается. Я уверен, что это связано с режимом IE5Quirks, потому что, если я использую инструменты IE Developer и перехожу в режим стандартов, iframe загружается, как и ожидалось. Как я могу получить iframe для загрузки без проблем?

1 ответ

Решение

Из вашего комментария:

У меня нет никакого контроля над страницей, которая отображается в режиме причуд; однако мой контент должен быть загружен в стандартный фрейм на этой странице.

Я боюсь сказать вам, что вам не повезло.

IE не поддерживает смешанные режимы рендеринга между кадрами на одной странице. Если главная страница находится в режиме причуд, тогда все фреймы или фреймы на этой странице также будут в режиме причуд, даже если они написаны для соответствия стандартам.

Вот как это работает, и вы не можете переопределить это.

Ваши варианты, как я их вижу:

  1. Найдите способ обновить родительскую страницу, чтобы она больше не нуждалась в режиме Quirks. (Я ценю, что эта опция не может быть открыта для вас, но, откровенно говоря, шокирует тот факт, что в 2015 году кто-то все еще использует режим причуд; менеджеры, которые считают, что они экономят деньги, не обновляя устаревшую систему, нужную для этого, должны проснуться. звонить)

  2. Понизьте вашу страницу, чтобы она могла работать в режиме причуд. Обратите внимание, что если вы используете какие-либо современные функции браузера, то эта опция может оказаться невозможной, поскольку режим Quirks отключит эти функции во имя совместимости с IE5.

  3. Откройте свой контент во всплывающем окне вместо фрейма. Кажется, это, пожалуй, самый прагматичный вариант. Это почти наверняка будет наименьшее количество работы (будь то порядок или величина). Это может выглядеть не так хорошо, как если бы оно было в iframe, но, по крайней мере, это сработает.

Другие вопросы по тегам