我正在开发一个使用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>
答案 0 :(得分:1)
这似乎是一个Firefox回归错误。我找到了this one on Mozilla bugzilla。 我担心没有人可以在这里帮助你,除非修补了这个bug,并且闻起来不太好... 2年前打开,6个月后没有更新。