IE8 усиливает режим совместимости при вставке данных в div
Вопрос
Я борелся против режима совместимости IE8 в течение всего дня, и я собираюсь обмануть кирпич на нем.
У меня какой-то код, который использует jQuery 1.2 (да, это старое - не могу изменить это), чтобы найти некоторые записи в нашем веб-приложении. Результаты поиска можно нажать, чтобы просмотреть содержимое записи (с помощью .animate () открывает пространство подряд и создает еще один TR внизу и вставляет данные HTML из корма JSON).
В IE8, нажав на результат, чтобы просмотреть содержимое, чтобы перезагрузить в режиме совместимости, где он отлично работает во всех других браузерах (IE7, FF3.0 +, Chrome, Safari). Я пытался использовать панель инструментов разработчиков IE8 для отладки и отслеживания, почему это происходит, но я не смог найти какую-либо ошибку или какие-либо доказательства того, что может ее вызвать.
Код, который показывает превью:
// Code that binds a click to open the result preview:
var _tr = $('<tr class="outline" id=' + val.assessment.assessmentId + '></tr>').bind("click", msi.reuseAssessment.preview);
...
// in msi.reuseAssessment.preview()
var url = "/direct/msi-assessment/" + assessmentId + "/assessmentHtml.json?no-cache=true";
jQuery.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(d, textStatus){
var _content = d.assessmentHtml;
var _preview = $("<tr id=" + assessmentId + "></tr>");
// loadContent
_tr.after(_preview.animate({
height: 50
}, 500, 0, function() {
msi.reuseAssessment.drawPreview(this, _content); // Puts the content from the json into a td
}));
},
error: function(xmlHttpReq, status, errorThrown) {
// display error msg
}
});
Выступая через код, используя инструменты разработчика IE8, он пропускается здесь и в куда-то в код jQuery, и это когда он обновляется в режиме совместимости. Я проверил JSON, код HTML, который выходит с W3C, и все в порядке, я действительно в потере от того, что происходит.
Кто-нибудь знает, как я могу лучше отследить то, что это заставляет его, или я должен просто заставить IE7 Mode на этих страницах?
Редактировать: поиск выполняется в всплывающем окне AJAX, который появляется над верхней частью экрана. Это шаблон (базовый HTML) загружен из отдельного HTML-файла и вводится в div в нижней части исходной страницы. Это означает, что будут вложены HTML-файлы (с <html></html>
Теги и т. Д.). Это так повлияет на это тоже?
Редактировать 3: Удаление этих дубликатов тегов не решило проблему.
Редактировать 2: все еще не решил это. Это просто одна из тех вещей, что IE8 не будет отображаться должным образом и поставить его в браузер quirk? Я бы действительно ценю некоторую помощь по этому поводу.
Решение 3
После того, как коллега тоже искал, мы нашли это Вот на так, Там, где было подтверждено, что максимальная высота вызывает жесткое утверждение в IE8, подтверждающее, что это действительно ошибка в IE8, как Ericlaw Posted.
Мы использовали максимальную высоту для стиля Div, мы вставляем содержание, и, в свою очередь, вызывая упорное утверждение. Вышеуказанный связанный вопрос имеет работу для всех, кто может встретиться с этой проблемой.
Другие советы
К заставляет его перезагрузить в режиме совместимости Вы имеете в виду, что вы получаете уведомление о воздушных шарах, который говорит что-то вроде: «Internet Explorer столкнулся с проблемой с этой страницей и загрузил его в режим совместимости»?
Если это так, это означает, что вы попали в ошибку в IE. Называется «твердым утверждением», это означает, что механизм макета разбился (не AV или что-то захватывающее, он только что попал в некоплеобразенное состояние) и, таким образом, т. Е. немного Содержание с помощью старого механизма макета.
Если проблема все еще возникает в IE9, пожалуйста, подать ошибку в http://connect.microsoft.com/ie.
Спасибо!
Вы гарантировали, что ваш DOCTYPE и X-UA-совместимые правильные
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
И добавить это сразу после <head>
<meta http-equiv="X-UA-Compatible" content="IE=8">