IE9 по умолчанию применяет MSXML6, а IE8 применяет MSXML3. Тот факт, что некоторые функции по умолчанию отключены в MSXML6, вызывает проблемы, в частности, при загрузке таких страниц, как
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<root>...</root>
где упомянутая таблица стилей xslt применяет встроенный javascript (например, пользовательские функции расширения).
Можно установить свойства DOM xslt в коде скрипта, например, в Jscript:
var xsltDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xsltDoc.setProperty("AllowXsltScript", true);
xsltDoc.loadXML(xsltfile);
Но при загрузке указанного выше файла IE9 автоматически загружает файл xslt со значениями свойств по умолчанию. И это приводит к поразительной разнице с IE8: IE8 будет загружать страницу безупречно, но IE9 выдает ошибку из-за свойства объектов DOM MSXML6 по умолчанию «разрешить сценарии xslt = false». Это неправда. См. мой ответ ниже. Таким образом, остальная часть вопроса не имеет значения
Как заставить IE9 загружать указанный выше файл и по-прежнему разрешать запуск скриптов в xslt?
Примечание. Я уже пробовал Свойства обозревателя/Безопасность/Пользовательский уровень.../Сценарии/Активные сценарии = Включить, как было предложено в msdn, но этот параметр уже был правильным.
Я надеюсь, что есть конкретная инструкция по обработке IE9, но я думаю, что ее нет. Но, возможно, есть специальный атрибут таблицы стилей, который взаимодействует с загрузкой xslt в IE9.
Вывод также может заключаться в том, что это возможно только при запуске сценария в основном файле html, где не выполняется автоматическая загрузка, но XML и XSLT загружаются в указанные объекты DOM с указанными свойствами (например, AllowXsltScript), а результат преобразования затем явно загружается в браузер.