Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在XSLT样式表(Firefox)中使用document.write_Javascript_Firefox_Xslt_Document.write - Fatal编程技术网

Javascript 无法在XSLT样式表(Firefox)中使用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

我创建了一个包含一些嵌入式JavaScript的XSL样式表。它调用函数,然后调用document.write()将这些函数的结果打印到页面上

<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的原因是,客户机需要对输出数据进行复杂的格式化。