Javascript 多行字符串问题
Javascript multiline string issue
我的代码是:
let testStr = "Asdfads";
let htmlStr = `<script>${ testStr }</script>`; // but it works with: <div>${ testStr }</div>
console.log(htmlStr);
它 returns 我出错了:
Uncaught SyntaxError: Unterminated template literal
我做错了什么?我运行它在最新的Chrome。
问题出在您的 "</script>"
上:它结束了嵌入它的脚本元素(因此 "unterminated template literal")。
一个解决办法就是写成另一种形式,比如
`</` + "script>"
或
let htmlStr = `<script>${ testStr }</${"script"}>`;
或
let htmlStr = `<script>${ testStr }</\script>`;
(任何其他不包含 "</script>"
的结构都可以)。
这与模板或字符串无关:这是在 HTML 页面被读取时读取的,甚至在 javascript 被解析之前很久。
关闭脚本标签应该被转义。
let htmlStr = `<script>${ testStr }<\/script>`;
会起作用
我的代码是:
let testStr = "Asdfads";
let htmlStr = `<script>${ testStr }</script>`; // but it works with: <div>${ testStr }</div>
console.log(htmlStr);
它 returns 我出错了:
Uncaught SyntaxError: Unterminated template literal
我做错了什么?我运行它在最新的Chrome。
问题出在您的 "</script>"
上:它结束了嵌入它的脚本元素(因此 "unterminated template literal")。
一个解决办法就是写成另一种形式,比如
`</` + "script>"
或
let htmlStr = `<script>${ testStr }</${"script"}>`;
或
let htmlStr = `<script>${ testStr }</\script>`;
(任何其他不包含 "</script>"
的结构都可以)。
这与模板或字符串无关:这是在 HTML 页面被读取时读取的,甚至在 javascript 被解析之前很久。
关闭脚本标签应该被转义。
let htmlStr = `<script>${ testStr }<\/script>`;
会起作用