var c= {"Content":"</SCRIPT>"}
给出了Chrome的解析错误。 逃离作品... </SCRIPT>
https://jsfiddle.net/OndrejSpilka327/banr9836/
是否真的铬错误吗?
编辑 我不认为论证是正确的。 HTML解析器应该与JavaScript解析器无关。 首先,任何内容都应该被解析为JavaScript,而不是HTML。这绝对是HTML解析器的错误实现。
对于你的好奇心:
var c= {"Content":"<SCRIPT></SCRIPT>"}
console.log(c.Content);
主要生产中的jsfiddle的SAM错误...这绝对是很好形成。
再一次可以争辩说SCRIPT标签不能出现在外部SCRIPT标签内,然而无论在SCRIPT标签中包含什么,都应该将其解析为不是HTML的脚本,特别是如果在常规字符串文字中转义。
这样的论证只提倡糟糕的实现。
很明显,在使用序列化为json的自定义内容并保存在SCRIPT标记中时,该行为会产生错误。
只是好奇你删除了菲利克斯的标签,为什么?
对象文字与JSON不一样。这里没有JSON。 –
那么这个对象字面值是JSON兼容的。但是,确切地说,是的,这是对象字面。没有区别。 – OSP
“首先,无论是否包含在''中,都应该被解析为JavaScript,而不是HTML。这是HTML解析器的绝对错误实现。” - 不是。在HTML里面的JavaScript是**。您需要解析HTML(这里是开始标记,这里是一个文本节点,这里是结束标记,现在将文本节点传递给JS解析器以作为JS处理),或者您需要识别开始标记和然后切换到解析JS,直到到达无法标记“JS的结尾”的JS的末尾,因此这是不可能的,因此HTML + JS不会被设计为像那样被解析。 – Quentin