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