2011-09-21 130 views
2

浏览器的textarea不应该显示原始文本吗?请看下面的卡扣从this post,并注意<script>标签:为什么<textarea>显示<>而不是< >?

1我们可以看到周围的脚本字尖括号:

We can see the angled brackets around the script word

2-现在看的源这一页。我们可以看到尖括号由它们的HTML实体表示:

We can see the angled brackets are represented by their HTML entities

3-点击编辑的帖子,你会看到尖括号中的文字区域是可见的 - 不是他们的HTML实体:

We can see the angled brackets are visible in the textarea--NOT their HTML entities

4-看来自服务器的响应XHR(当我们点击编辑),我们可以看到HTML实体,而不是尖括号我们在textarea的看到:

We can see the HTML entities and NOT the angled brackets we see in the textarea

textarea怎么可能在编辑帖子的时候显示斜角括号而不是他们的HTML实体? textareas不应该显示原始文本?我在我的网站上试过,textarea显示HTML实体,而不是括号,使用相同的源代码。

即使在codepre标签内,帖子页面也会显示斜角括号。它们不应该作为原始文本输出吗?我也在我的网站上试了这个,页面显示了HTML实体,而不是斜角括号。

我在这里失踪了什么?

我在问,因为在我的网站上实现一项功能而挣扎。我想在编辑某些内容时向人们展示编码实体,但我想存储一个原始版本。 SO似乎已经完成了,但我不知道如何。

回答

4

请参阅Character Data and Markup并考虑HTML中的CDATA sections(请仔细阅读DTD,但请注意,它不足以完整描述HTML)。

script(和style)元素具有这样的CDATA名称,而textarea没有。将数据存储为(“未转义”),但要确保在HTML的CDATA部分之外进行HTML编码(甚至在内部,请注意防止终止符,如</anything - </字符必须分隔为完全合法的HTML)。有关更多详细信息,请参阅CDATA vs PCDATA

快乐编码。

相关问题