我表达了使用哈巴狗作为观点。我的index.pug有以下内容:
script(type='text/javascript').
window.__DATA__ = !{payload}
其中payload是json对象。它已经在express:
的渲染函数中进行了字符串化res.render('index', {
payload : JSON.stringify({
"anExample": "<script></script>"
})
})
当我的Json对象有</script>
时,由于结束脚本标记,它会提前终止我的window.__DATA =
函数。如何防止这会炸毁我的页面?这是Pug或Express或浏览器的限制吗?
答案 0 :(得分:0)
你必须要打破&#34;分手&#34;包含脚本标记的字符串。
这样的事情应该有效:
"anExample": "<script></scr" + "ipt>"
这样,</scr" + "ipt>
不会被解释为结束脚本标记。
答案 1 :(得分:0)
在询问解决方案后,使用stringify库而不是使用提供的JSON.stringify
函数。
具体来说,我使用了npm模块js-stringify
,它除了将json字符串化之外,还将<
个字符更改为unicode。因此,然后可以将其插入像Pug这样的模板引擎中。然后帕格可以用!{my_stringified_json}
取消它。因为它将unicode恢复到原来的状态,所以json最终成为'anExample: '<script></script'>
而不是它的unicode等价物。