XSLT на стороне клиента в IE, где XSL содержит JavaScript, когда документ XSL загружен с помощью JQuery - PullRequest
1 голос
/ 07 февраля 2012

У меня есть веб-сайт, который часто использует клиентский XSLT, некоторые из которых содержат JavaScript.Сайт работает только в IE, но я пытаюсь сделать его кроссбраузерным.Документы XSL были загружены как xml острова, но я изменил это, чтобы использовать вместо этого JQuery:

function loadIndividualXML(name, src) {
var request = {
    url: src,
    dataType: "xml",
    async: false
    };
window[name]=$.ajax(request).responseXML;
}

Это прекрасно работает на XSL, который не содержит javascript, но не работает на том, который делает.Код преобразования:

var xmlDomXML = new ActiveXObject("Msxml2.DOMDocument");
xmlDomXML.async = false;
xmlDomXML.load(XMLdata);
var xmlDomResult = new ActiveXObject("Msxml2.DOMDocument");
// xmlDomXSL already loaded with function above
xmlDomXML.transformNodeToObject(xmlDomXSL, xmlDomResult);

Ошибка:

Ошибка времени выполнения Microsoft JScript: Ошибка времени выполнения Microsoft JScript Требуемая строка объекта = 1, столбец = 0 (строка смещена от началаблок скрипта).Ошибка, возвращаемая из вызова свойства или метода.

Начало XSL выглядит следующим образом:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:script language="JavaScript"><![CDATA[
    var totalRows = 0;
    var rowCount = 0;
    var columnsDesired = 3;

1 Ответ

0 голосов
/ 26 августа 2012

Используйте http://www.w3.org/1999/XSL/Transform в качестве пространства имен для кросс-браузерного преобразования.Используйте msxsl:script вместо xsl:script и добавьте script. перед вызовом метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...