请考虑以下代码:
JSON.parse('{"html":{"lang":"en"},"head":"\\n\\t<meta charset=\\"UTF-8\\">\\n\\t<title>Check ScreenShare</title>\\n\\t<link rel=\\"stylesheet\\" href=\\"main.css\\">\\n\\t<script src=\\"main.js\\"></script>\\n","body":"\\n\\t<h1>This is just a test</h1>\\n\\t<p>This is a great thing to do. This is very good.</p>\\n\\n\\n<script src=\\"sendContent.js\\"></script>"}');
Run Code Online (Sandbox Code Playgroud)
这在开发人员控制台(firefox)中运行良好,但是当我将其包含在html文件中时,firefox会显示错误
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Check others</title>
</head>
<body>
<!-- <iframe src="" frameborder="0" id="all"></iframe> -->
</body>
<script type="text/javascript">
//var ifrm = document.getElementById('all');
JSON.parse('{"html":{"lang":"en"},"head":"\\n\\t<meta charset=\\"UTF-8\\">\\n\\t<title>Check ScreenShare</title>\\n\\t<link rel=\\"stylesheet\\" href=\\"main.css\\">\\n\\t<script src=\\"main.js\\"></script>\\n","body":"\\n\\t<h1>This is just a test</h1>\\n\\t<p>This is a great thing to do. This is very good.</p>\\n\\n\\n<script src=\\"sendContent.js\\"></script>"}');
//var obj = JSON.parse(JSONstr);
console.log(obj);
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
错误是:
SyntaxError: unterminated string literal
Run Code Online (Sandbox Code Playgroud)
任何有想法如何让它工作的人?
您不能将字符串嵌入</script>脚本块中,因为它会结束脚本块.HTML解析器不知道JavaScript语法,因此它不会关注引号.
请<\/script>改用.
我会进一步建议你研究一个模板系统,因为在字符串中嵌入所有标记非常麻烦且容易出错.
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |