Javascript 无法在XSLT样式表(Firefox)中使用document.write
我创建了一个包含一些嵌入式JavaScript的XSL样式表。它调用函数,然后调用document.write()将这些函数的结果打印到页面上Javascript 无法在XSLT样式表(Firefox)中使用document.write,javascript,firefox,xslt,document.write,Javascript,Firefox,Xslt,Document.write,我创建了一个包含一些嵌入式JavaScript的XSL样式表。它调用函数,然后调用document.write()将这些函数的结果打印到页面上 <xsl:foreach...> <div class="directionBlock"> <script type="text/javascript">writeDirection('<xsl:value-of select="Direction"/>');</script> </div
<xsl:foreach...>
<div class="directionBlock">
<script type="text/javascript">writeDirection('<xsl:value-of select="Direction"/>');</script>
</div>
</xsl:foreach...>
写指令(“”);
不幸的是,firefox不支持document.write()。怎么办?为什么要同时使用XSLT和Javascript来输出HTML?如果你的目标是在<代码> div <代码>中输出一些东西,包含<代码>脚本< /> >元素,那么考虑只使用XSLT来完成。如果您真的需要使用JavaScript创建内容,那么考虑使用诸如<代码> CREATEYONE < /COD>和<代码> AppDebug < /代码>之类的方法,而不是<代码>文档。 这就是一般答案所能提供的帮助,如果您需要特定的帮助,那么我们需要查看代码的详细信息,如
writeDirection
函数和您传递给它的参数
为了给您一些示例代码的概要,如果writeDirection函数需要向div添加内容,则在div上放置一个id,例如…
,然后将其传递给writeDirection函数,例如writeDirection(“”,document.getElementById('db1')代码>,然后在该函数中
function writeDirection(dir, elementToWriteTo) {
// instead of document.write(stuff) use
var span = document.createElement('span');
span.innerHTML = stuff;
elementToWriteTo.appendChild(span);
}
我实现解决方案的方法是调用函数并传递行号:
<xsl:foreach...>
...
<div class="directionBlock">
<script>myJsFunction('<xsl:value-of select="Direction"/>', <xsl:value-of select="position()"/>);</script>
</div>
...
</xsl:foreach...>
...
myJsFunction(“”,);
...
这又使用JQuery访问相关元素,使用第n个子元素(位置)获取行,找到选择器并使用.html()将代码插入该元素
谢谢你的帮助 -script标记上的Language属性应标识脚本语言,而不是MIME类型。而且,上面的代码拼写错误。-Firefox支持document.write-错误控制台中提供答案线索。-示例代码中没有document.write。XSL样式表不太可能调用document.write。更有可能的是,它生成了一个HTML脚本元素,当激活该元素时,会调用document.write。区别是相当重要的。谢谢你。我会改正的。我的意思是键入script type=“text/javascript”/>2。对的对我有一个标签,它调用一个javascript方法,该方法反过来调用document.write()谢谢。这正是我最终要做的。需要调用JavaScript的原因是,客户机需要对输出数据进行复杂的格式化。