【问题标题】:Javascript inside XSLT possible?XSLT 中的 Javascript 可能吗?
【发布时间】:2016-02-04 19:20:20
【问题描述】:

是否可以在 XSLT 文件中插入 Javascript 代码?

XSLT:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
 <html>
   <head>
   </head>
   <body>
     <span id="Intro" style="font-family:Calibri;" ></span>

     --OTHER XSLT CONTENT HERE--   

    <script>
      document.getElementById('Intro').innerHTML= new Date();              
    </script>
   </body>
  </html>
 </xsl:template>

生成的 HTML 文件没有在跨度内显示日期。

更新:这不是由客户端呈现的。相反,它是作为电子邮件的正文发送的。这会改变事情吗?

【问题讨论】:

  • 不会自动关闭,添加 /&gt; 并不会改变...
  • 谢谢丹达维斯。我还尝试了 的案例
  • 好吧,如果发布的 XSLT 在任何地方执行,那么&lt;xsl:template match=""&gt; 肯定会出错。至于脚本,它是XSLT转换的HTML结果中的脚本,目前还不清楚您是否在执行脚本的浏览器中使用该结果。
  • "生成的 HTML 文件没有在跨度内显示日期。" 生成的 HTML 文件不应该在跨度内显示日期。那将在将文件渲染到屏幕时由浏览器动态插入。如果您希望生成的文件包含实际日期,则它必须是静态日期 - XSL 转换发生的日期。
  • 没有自尊的邮件客户端会在收到的电子邮件上运行 javascript,否则垃圾邮件发送者不需要诱骗您点击链接。

标签: javascript xml xslt


【解决方案1】:

是的,可以在 XSLT 中包含 JavaScript。

但是,当 JavaScript 包含 &lt; 等字符时,可能会出现复杂情况。您可以通过 CDATA 玩游戏来克服困难,但如果可能,最好将 JavaScript 外部化并使用 &lt;script src="url/to/your.js"&gt;&lt;/script&gt; 引用它。

对静态 JS 执行此操作,并拥有一小部分动态 JavaScript 内容,其中包含将用于调用静态外部加载的 JS 的变量和对象数组。

【讨论】:

    猜你喜欢
    • 2013-09-20
    • 2018-01-11
    • 2011-03-21
    • 2020-10-27
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2020-11-03
    • 2011-01-11
    相关资源
    最近更新 更多