我的代码是:
let testStr = "Asdfads";
let htmlStr = `<script>${ testStr }</script>`; // but it works with: <div>${ testStr }</div>
console.log(htmlStr);
&#13;
它给我一个错误:
未捕获的SyntaxError:未终止的模板文字
我做错了什么?我在最新的Chrome上运行它。
答案 0 :(得分:3)
问题在于你的"</script>"
:它结束了嵌入它的脚本元素(因此是“未终止的模板文字”)。
解决方案是以另一种形式编写,例如
`</` + "script>"
或
let htmlStr = `<script>${ testStr }</${"script"}>`;
或
let htmlStr = `<script>${ testStr }</\script>`;
(任何其他不包含"</script>"
的构造都可以。)
这与模板或字符串无关:在读取HTML页面之前,即使在解析javascript之前,也会读取此内容。
答案 1 :(得分:0)
应该转义关闭脚本代码。
let htmlStr = `<script>${ testStr }<\/script>`;
会起作用