防止 handlebars 为 html 解析某些标签或字符?

prevent handlebars from parsing certain tags or character for html?

我想用 javaScript 代码替换 html 文件部分。需要用到JS事件。由于hbs只替换文本,所以我想在html中添加一个js脚本来实现这个目的。 JS 代码保存为字符串并作为值传递,我想从 html 执行它。 使用 node js 服务器端渲染和 hbs。

车把分析的 TS 代码:

const testScript = "\<script\> function displayDate(o) \{ let x = \"hello\"\;document.getElementById(\"demo\").innerHTML = o\;} </script>";


res.render("home", { testScript });

首页html/hbs代码:

 <div>

{{testScript}}

 </div>

结果是:

<div>

&lt;script&gt; alert(&quot;Hello JavaScript!&quot;) &lt;/script&gt;

</div>

预期结果是:

 <script>
function displayDate(o) {
    let x = "hello";
  document.getElementById("demo").innerHTML = o;
}
</script>


<p id="demo"></p>

如果可以防止 handlebars 将某些标签解析为更改的标签,那么可能会发生预期的结果。

无法通过使用此问题中提到的短语进行搜索找到解决方案。所以请告诉我一个解决方案,让字符串保持原样用于车把解析。

是否可以告诉车把不解析某些标签?

您需要按照官方documentation使用三重存储。三重垃圾不逃脱输出。

<div>
{{{testScript}}}
</div>