以前曾经问过,但我想评估一下这是否可行?...
有没有一种简单的方法将javascript变量传递给xsl变量?原因是,变量将来自外部脚本。
这是我的非工作代码......
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:template match="/">
<div>
<script type="text/javascript">
var key = window.location.href;
</script>
<xsl:variable name="jsvar">$key</xsl:variable>
<xsl:value-of select="$jsvar"/>
</div>
</xsl:template>
我想显示&#34; Term1&#34;在网页上。
有什么想法吗?
答案 0 :(得分:1)
XSL正在输出script
标记,它不是定义在XSL上下文中可执行的任何内容的东西。你可以做的是在全局范围内定义XSL变量,并在脚本和div中重复使用它:
<xsl:variable name="jsvar">Term1</xsl:variable>
<xsl:template match="/">
<script>
var key = "<xsl:value-of select="$jsvar"/>";
</script>
<div>
<xsl:value-of select="$jsvar"/>
</div>
</xsl:template>
如果你想在JS执行时知道一个JS知道的变量,并在浏览器页面的元素中显示它,那么你必须在JS中这样做:
<xsl:template match="/">
<script>
window.onload = function() {
document.getElementById('location').textContent = window.location.href;
};
</script>
<div id="location"></div>
</xsl:template>