如何将JavaScript代码原样存入JavaScript字符串变量?
问题原因
你的代码用双引号包裹整个字符串,但字符串内部同样使用了双引号(比如"demo"),这会让JavaScript解析器错误地认为字符串在"demo"的第一个双引号处就结束了,直接导致语法报错。
解决方法
有三种常用的修正方式:
1. 转义内部双引号
在字符串内部的双引号前加上反斜杠\,明确告诉解析器这是字符串的一部分,不是结束标记:
var all_script="<script>var text = document.getElementById(\"demo\").innerHTML; document.getElementById(\"demo\").innerHTML = text.replace(\"Jordan\", \"Adam\");</script>"; console.log(all_script);
2. 用单引号包裹外层字符串
JavaScript支持单引号和双引号定义字符串,只要外层和内层使用不同的引号类型,就不会产生冲突:
var all_script='<script>var text = document.getElementById("demo").innerHTML; document.getElementById("demo").innerHTML = text.replace("Jordan", "Adam");</script>'; console.log(all_script);
3. 使用ES6模板字符串
用反引号`包裹整个字符串,内部可以直接使用双引号或单引号,还支持换行,写法更灵活清晰:
var all_script=` <script> var text = document.getElementById("demo").innerHTML; document.getElementById("demo").innerHTML = text.replace("Jordan", "Adam"); </script> `; console.log(all_script);
内容的提问来源于stack exchange,提问作者Mayuresh Deshmukh
相关产品推荐
相关产品推荐

