在IE中客户端的XSLT,当XSL文件加载了JQuery时,XSL包含javascript

时间:2012-02-07 17:51:52

标签: javascript xslt

我有一个经常使用客户端XSLT的网站,其中一些包含javascript。该网站仅适用于IE,但我试图让它跨浏览器。 XSL文件已作为xml岛加载,但我将其更改为使用JQuery:

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

这在不包含javascript的XSL上工作正常,但在失败的情况下失败了。转换代码是:

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运行时错误 所需对象 line = 1,col = 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 :(得分:0)

使用http://www.w3.org/1999/XSL/Transform作为跨浏览器转换的命名空间。在方法调用之前使用msxsl:script代替xsl:script并在script.之前添加。