Javascript parse()可以在控制台中正常工作,但不能在HTML中正常工作

Javascript parse()可以在控制台中正常工作,但不能在HTML中正常工作,javascript,json,Javascript,Json,考虑以下代码: 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>

考虑以下代码:

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>"}');

有人知道如何使它工作吗?

您不能将字符串
嵌入脚本块,因为它结束了脚本块。HTML解析器不知道JavaScript语法,因此不注意引号

改用


我进一步建议您研究一个模板系统,因为将所有标记嵌入到字符串中非常混乱且容易出错。

与Pointy类似,下面的建议是:“在HTML结束标记中转义正斜杠。Hello World!”

所以,在为title标记和两个script标记添加了三个正斜杠之后,我正确地解析了它

var object=JSON.parse(“{”html:{”lang:“en”},head:“\\n\\t\\n\\t检查屏幕共享\\n\\t\\n”,“body:“\\n\\t这只是一个测试\\n\\t这是一件很好的事情。这很好。

\\n\\n\\n});
console.log(对象)单引号字符串中是否有原始换行符?谢谢!实际上,我正在尝试将所有DOM内容发送到服务器,然后从另一个客户端检索这些内容(以便模拟屏幕共享应用程序),因此我不太确定模板系统是否在这里工作。:)我不必逃避“头衔”。无论如何,谢谢
<!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>
SyntaxError: unterminated string literal