Я решил ту же самую проблему для большого приложения HTML5, которое требовало совместимости с IE8.HTML-код, возвращаемый вызовами Ajax, является довольно сложным и включает в себя теги SCRIPT с большим количеством JQuery и автономного кода JavaScript.
Помимо хорошо известной проблемы с кэшированием IE (и некоторых других), ключом к этой проблеме являетсяIE очень требователен во время загрузки динамического HTML-контента в любой элемент, в моем случае это был DIV.IE не только требователен, но и демонстрирует своего рода случайное поведение, такое как рендеринг части возвращаемого HTML или вообще ничего, без какой-либо очевидной связи между частично визуализированным HTML и наконец обнаруженной проблемой кодирования.
Кроме тогоон вообще не выдает ошибок в кодировании HTML, что делает его настоящим испытанием для отладки такого рода сценариев.В моем случае у меня не было выбора, кроме как вернуться к методам отладки 90-х годов.Я взял возвращенный HTML-код из Chrome, скопировав код узла в виде проверки этого браузера, поместил его в плоский файл .html и использовал этот код на стороне сервера для чтения кода из плоского файла.
$myfile = fopen("flatfile.html", "r") or die("Unable to open the file");
echo fread($myfile,filesize("flatfile.html"));
fclose($myfile);
С этого момента используйте возвращенный код и вводите его в объект контейнера, начните с деления его на две части (позволяя каждой части быть самостоятельным фрагментом кода), посмотрите, какая часть этих двух визуализируется, а какая нет.и так далее с каждой частью до тех пор, пока вы не найдете нарушающий код.
Важно отметить, что IE8 будет работать независимо от того, насколько сложным является смешивание HTML и Javascript, вам просто нужно мучительно отлаживать код,Если я скажу так, то это потому, что вы найдете много сообщений о том, что IE7,8 не может обработать сложный код, возвращенный Ajax, или что свойство JQuery .html () не будет работать в таких случаях.Это неправда, не торопитесь, и вы поймете, где ваша проблема, не сдавайтесь.