2011-09-21 167 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

快樂編碼。

相關問題