xsl:包括不在Firefox扩展中工作

时间:2010-01-20 12:30:57

标签: javascript xslt firefox-addon

我正在开发一个使用XSL转换的Firefox扩展。一世 我一直在使用XSLTProcessor而没有问题,直到我需要做 xsl:包含在XSL样式表中。当我导入XSL样式表 使用xsl:include,Firefox会出错:

  

错误:组件返回失败   代码:0x80600001   [nsIXSLTProcessor.importStylesheet] =    源文件:   铬://myextension/content/functions.js   行:632

仅当从Firefox扩展程序运行代码时才会发生这种情况 我在“普通”html页面中运行它,代码完美无缺。我也试过了 使用xsl:import并获得相同的结果。我也试过像chrome:\\myextension\content\xsl\test2.xsl这样的绝对URI并得到同样的错误。

有谁知道我能做错什么?提前致谢

这里是重现它的代码(所有文件都在同一个文件夹中):

档案 functions.js

function testXSL(){
        var processor = new XSLTProcessor();
        var xsl = document.implementation.createDocument("", "test", null);
        xsl.addEventListener("load", onXSLLoaded, false);

        xsl.load("test1.xsl");
        function onXSLLoaded() {
           processor.importStylesheet(xsl);
        }
}

文件 test1.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xlink="http://www.w3.org/1999/xlink">

<xsl:include href="test2.xsl" />

</xsl:stylesheet>

文件 test2.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xlink="http://www.w3.org/1999/xlink">

    <xsl:template match="/">
                <h1>Included!!</h1>
        </xsl:template>

</xsl:stylesheet>

1 个答案:

答案 0 :(得分:1)

这似乎是一个Firefox回归错误。我找到了this one on Mozilla bugzilla。 我担心没有人可以在这里帮助你,除非修补了这个bug,并且闻起来不太好... 2年前打开,6个月后没有更新。