2016-02-05 85 views
0

的HTML <textarea>環境轉換的字符序列表示特殊符號如如何防止HTML textarea轉換特殊符號,如>?

&gt; 

成根據符號:

> 

然而,我試圖建立這是應該採取的用戶輸入一個代碼編輯器逐字逐字逐句逐字逐句。問題是,如果用戶在編輯器中鍵入&gt;並編譯代碼,則會重新加載<textarea>,並在此過程中轉換字符。

這裏是一個MWE:加載頁面時

<!doctype html> 
<html> 
    <head> 
    </head> 

<body> 
    <textarea> 
     &lsquo; 
     &rsquo; 
     &sbquo; 
     &ldquo; 
     &rdquo; 
     &bdquo; 
     &dagger; 
     &Dagger; 
    </textarea> 
</html> 

所有textarea的編輯器中的東西轉化。

轉義所有&符號可能是一個選項(如此處所示:how to show &lt;html&gt; in textarea),但它感覺好像並不是真正正確的做法。 (我不需要考慮更多的特殊情況,如HTML標籤等)

是否存在「推薦」的方式來實現HTML代碼編輯器?我試過CodeMirror,但問題仍然存在。

回答

3

轉義所有的&符號可能是一個選擇,但它感覺好像它不是真正正確的事情。

這是絕對

難道不是我要考慮更多的特殊情況下,如HTML標記等正確的事情。??

是。

與任何其他文本一樣,您希望將其插入到HTML文檔中,該文本中具有特殊含義的字符應首先轉換爲HTML。令人高興的是,您只需要擔心字符而不是特殊情況下任何複雜的標籤。


你怎麼做取決於你如何生成你的HTML。

在模板工具包:

<textarea>[% myData | html %]</textarea> 

在PHP:

<textarea><?php echo htmlspecialchars($myData, ENT_QUOTES); ?></textarea> 
+0

好吧,我能做到這一點很容易。我只是不確定這是否正確。我使用Java創建HTML - 應該有預定義的方法來轉義特殊符號。已經找到這個:http://stackoverflow.com/questions/1265282/recommended-method-for-escaping-html-in-java –

1

正如你所說,逃避&是最好的選擇。根據您要顯示&gt;這一事實,這是正確的。這樣,它將被直接正確理解。

相關問題