Я занимаюсь разработкой расширения Firefox, которое использует XSL-преобразования. я
использовал XSLTProcessor без проблем, пока мне не нужно было сделать
xsl: включить из таблицы стилей XSL. Когда я импортирую таблицу стилей XSL
который использует xsl: include, Firefox выдает ошибку:
Ошибка: ошибка возврата компонента
код: 0x80600001
[nsIXSLTProcessor.importStylesheet] =
Исходный файл:
хром: //myextension/content/functions.js
Линия: 632
Это происходит только при запуске кода из расширения Firefox , если
Я запускаю его в «нормальной» HTML-странице, код работает отлично. Я тоже пробовал
с помощью xsl: import и получил тот же результат. Я также попытался с абсолютными URI, такими как chrome:\\myextension\content\xsl\test2.xsl
и получить ту же ошибку.
Кто-нибудь знает, что я могу делать не так? Заранее спасибо
Здесь приведен код для его воспроизведения (все файлы находятся в одной папке):
Файл 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>