防止 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>
<script> alert("Hello JavaScript!") </script>
</div>
预期结果是:
<script>
function displayDate(o) {
let x = "hello";
document.getElementById("demo").innerHTML = o;
}
</script>
<p id="demo"></p>
如果可以防止 handlebars 将某些标签解析为更改的标签,那么可能会发生预期的结果。
无法通过使用此问题中提到的短语进行搜索找到解决方案。所以请告诉我一个解决方案,让字符串保持原样用于车把解析。
是否可以告诉车把不解析某些标签?
您需要按照官方documentation使用三重存储。三重垃圾不逃脱输出。
<div>
{{{testScript}}}
</div>
我想用 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>
<script> alert("Hello JavaScript!") </script>
</div>
预期结果是:
<script>
function displayDate(o) {
let x = "hello";
document.getElementById("demo").innerHTML = o;
}
</script>
<p id="demo"></p>
如果可以防止 handlebars 将某些标签解析为更改的标签,那么可能会发生预期的结果。
无法通过使用此问题中提到的短语进行搜索找到解决方案。所以请告诉我一个解决方案,让字符串保持原样用于车把解析。
是否可以告诉车把不解析某些标签?
您需要按照官方documentation使用三重存储。三重垃圾不逃脱输出。
<div>
{{{testScript}}}
</div>