Javascript多行字符串问题

时间:2018-02-08 14:48:34

标签: javascript string multiline

我的代码是:



let testStr = "Asdfads";
let htmlStr = `<script>${ testStr }</script>`; // but it works with: <div>${ testStr }</div>
console.log(htmlStr);
&#13;
&#13;
&#13;

它给我一个错误:

  

未捕获的SyntaxError:未终止的模板文字

我做错了什么?我在最新的Chrome上运行它。

2 个答案:

答案 0 :(得分:3)

问题在于你的"</script>":它结束了嵌入它的脚本元素(因此是“未终止的模板文字”)。

解决方案是以另一种形式编写,例如

`</` + "script>"

let htmlStr = `<script>${ testStr }</${"script"}>`;

let htmlStr = `<script>${ testStr }</\script>`;

(任何其他不包含"</script>"的构造都可以。)

这与模板或字符串无关:在读取HTML页面之前,即使在解析javascript之前,也会读取此内容。

答案 1 :(得分:0)

应该转义关闭脚本代码。

let htmlStr = `<script>${ testStr }<\/script>`;

会起作用