Я боролся с режимом совместимости 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 на этих страницах?
Редактировать: поиск выполняется в всплывающем окне ajax, которое появляется в верхней части экрана. Его шаблон (базовый HTML) загружается из отдельного файла HTML и вставляется в div в нижней части исходной страницы. Это означает, что будут вложенные HTML-файлы (с тегами <html></html>
и т. Д.). Повлияет ли это и на это?
Изменить 3: удаление этих дублирующих тегов не решило проблему.
Редактировать 2: Все еще не решили это. Является ли это только одной из тех вещей, которые IE8 не будет отображать должным образом и объяснит это браузером? Буду очень признателен за помощь.