Как включить тег script в файл xsl?
Я работаю на старом сайте, который использует java и xsl. Как я могу внедрить файл script в файл xsl? Верх файла:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="shipmentPackageInfo.xsl"/>
<script src="/fs/scripts/shipment/shipment.js"></script>
разбивает приложение
- ОБНОВЛЕНИЕ -
Существует еще один файл с именем pageHeader.xsl, в котором есть все теги script внутри
<xsl:output method="html"/>
<xsl:template match="PageHeaderData">
Ответы
Ответ 1
Кажется, здесь есть решение:
http://www.webdeveloper.com/forum/archive/index.php/t-20815.html
Поместите код javascript между тегом <xsl:text>
, как показано ниже
<script type="text/javascript">
<xsl:text>
javascript here
</xsl:text>
</script>
Ответ 2
Взгляните на мой ответ на XSLT не позволит мне использовать самозакрывающиеся теги img и br
Self-закрытие script тегов (<script src="code.js"/
> ) может привести к тому, что файлы JavaScript не загружаются, поэтому внутри вашего XSLT может потребоваться некоторый текст внутри тега script, чтобы он не закрывался сам и заставить его работать.
<script src="code.js>//</script>
Ответ 3
О, мне это нравится:
... ...
</body>
<script language="javascript"><![CDATA[
var a_patch = function(){
var links = document.getElementsByTagName("a");
for (var i=0; i<links.length; i++){
var link = links[i];
var text = link.innerHTML;
... ...
}
};
a_patch();
]]></script>
</html>
Ответ 4
вы должны вставить тэг script в блок шаблона или он сломается...
т
<xsl:template match="/">
<script src="/fs/scripts/shipment/shipment.js"></script>
</xsl:template>
Ответ 5
EDITED
Вот решение, которое работает
Предполагая, что это ваш xsl, и вы включаете xsl, как вы упомянули. В этом случае я назвал его include.xsl
. Я просто вызываю шаблон, называемый заголовками, который выдает ссылку на javascript.
Основной файл XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:include href="include.xsl"/>
<xsl:template match="/">
<xsl:call-template name="headers"/>
<bar>
<xsl:value-of select="root"/>
</bar>
</xsl:template>
</xsl:stylesheet>
include.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template name="headers">
<script src="/fs/scripts/shipment/shipment.js"></script>
</xsl:template>
</xsl:stylesheet>
Вывод:
<?xml version="1.0" encoding="utf-8"?>
<script src="/fs/scripts/shipment/shipment.js"/>
<bar>foo</bar>
Ответ 6
<script type="text/javascript" src="/Scripts/script.js">
<xsl:comment>script</xsl:comment>
</script>