我有以下腳本,它對它接收的某些值進行編碼,但似乎沒有對雙引號進行編碼。在POST之前對HTML進行編碼
如何在發佈前正確編碼整個值?
function htmlEncode(value){
return $('<div/>').text(value).html();
}
上述腳本給我這個:
<p>Test&nbsp; <span style="color: #ffffff"><strong><span style="background-color: #ff0000">1+1+1=3</span></strong></span></p>
我需要它給我這個:
<p>Test&nbsp; <span style="color: #ffffff"><strong><span style="background-color: #ff0000">1+1+1=3</span></strong></span></p>
編輯:後續問題: Encoded HTML in database back to page
它看起來像你正在試圖讓客戶端提交到服務器之前,使一些文本HTML安全。不要這樣做。使內容HTML在系統出路的時候安全,而不是在途中(特別是不在客戶端,它可能被篡改) – Quentin 2011-02-04 14:24:27
爲什麼你需要在客戶端上執行JS? – troutinator 2011-02-04 14:25:41
爲什麼你想讓它給你'"`?除非你打算將數據插入到一個屬性值中(你使用字符串而不是使用DOM或其他合理的API來混合使用),那麼你只需要使用6個字節,而且只需要使用6個字節並使其更難讀取。 – Quentin 2011-02-04 14:25:42