浏览器的textarea不应该显示原始文本吗?查看this post中的以下快照,并注意<script>
标记:
1-我们可以看到脚本字周围的斜角括号:
2-现在看一下页面的来源。我们可以看到有角度的括号由它们的HTML实体表示:
3-点击编辑帖子,你会看到有角度的括号在textarea中可见 - 而不是他们的HTML实体:
4-查看服务器的XHR响应(当我们点击编辑时),我们可以看到HTML实体,而不是我们在textarea中看到的斜角括号:
在编辑帖子时,textarea怎么可能显示有角度的括号而不是HTML实体? textareas不应该显示原始文本吗?我在我的网站上试过这个,textarea显示的是HTML实体,而不是括号,但源代码相同。
即使页面位于code
和pre
标记内,帖子页面也会显示有角度的括号。它们不应该作为原始文本输出吗?我也在我的网站上尝试了这个,页面显示的是HTML实体,而不是斜角括号。
我在这里缺少什么?
我问因为在我的网站上实施功能而苦苦挣扎。我想在编辑实体时向人们展示编码实体,但我想存储一个原始版本。所以似乎已经做了,但我不知道如何。
答案 0 :(得分:4)
请参阅Character Data and Markup并在HTML中考虑CDATA sections(请查看DTD,但请注意,它不足以完全描述HTML。)
script
(和style
)元素具有CDATA标识,而textarea
则没有。将数据存储为“(未转义”),但要确保在HTML中的CDATA部分之外进行HTML编码(甚至在内部,注意防范</anything
之类的终结符 - <
和必须将/
个字符分隔为完全合法的HTML格式。有关更多详细信息,请参阅CDATA vs PCDATA。
快乐的编码。