我需要在脚本标记之间输出XSL,以便将值动态输出到JavaScript中。
这是代码,但我无法让它工作。我想将position()
添加到脚本中,以便输出类似o.write("flash1");
的内容,并增加每个嵌入的Flash文件的数量。任何帮助表示赞赏。
<div>
<xsl:attribute name="id">iframe-content<xsl:value-of select="position()"/></xsl:attribute>
<div id="flash"></div><!--/flash-->
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("swf/video2.swf", "showreel", "720", "484", "8", "#ffffff");
so.addParam("quality", "high");
so.addParam("allowScriptAccess", "always");
so.addParam("wmode", "transparent");
so.addVariable("videoURL", "http://www.masterseries.co.uk/public/TempFiles/Concrete1.flv");
so.write("flash");
// ]]>
</script>
</div>
答案 0 :(得分:0)
你很接近(你不能像你那样容易地使用CDATA):
<!-- note that you don't need xsl:attribute here -->
<div id="iframe-content-{position()}">
<div id="flash"></div><!--/flash-->
<script type="text/javascript">
var so = new SWFObject("swf/video2.swf", "showreel", "720", "484", "8", "#ffffff");
so.addParam("quality", "high");
so.addParam("allowScriptAccess", "always");
so.addParam("wmode", "transparent");
so.addVariable("videoURL", "http://www.masterseries.co.uk/public/TempFiles/Concrete1.flv");
so.write("flash<xsl:value-of select='position()' />");
</script>
</div>
您可以使用
<xsl:output cdata-section-elements="script"/>
在输出中创建CDATA部分。但是,您必须确保输入脚本源是正确的XML编码,即没有裸<
,&
,>
个字符,但是<
,{{1 },&
等价物。