2012-07-19 46 views
1

可能重複:
JavaScript/jQuery HTML Encodingjavascript是否等同於C#的HttpUtility.HtmlEncode?

我傳遞信息到客戶端爲JSON和我生成從我的javascript代碼一些HTML。我有我傳遞到圖像的這樣的標題字段名爲名稱:

html.push("<img title='" + person.Name + "' src . . . 

的問題是,如果person.Name是「喬O'Mally」,因爲它只是顯示爲‘喬○’當我將鼠標懸停在圖片「

我不想剝離(在名稱上的服務器端,因爲有其他地方,我想在頁面上顯示的相同字符串。

因爲的)」

是否有相當於JavaScript中的HttpUtility.HtmlEncode,當我將圖像懸停時,它將顯示圖像標題中的全名?

+2

看看這個較早的帖子:http://stackoverflow.com/questions/1219860/javascript-jquery-html-encoding – 5arx 2012-07-19 13:12:16

+0

或http://stackoverflow.com/questions/3905310/is-therea-a- javascript-equivelent-of-htmlencode-htmldecode-from-asp-net(可能還有更多) – Lucero 2012-07-19 13:24:36

回答

8

不,但你可以很容易地寫一個。

function htmlEnc(s) { 
    return s.replace(/&/g, '&amp;') 
    .replace(/</g, '&lt;') 
    .replace(/>/g, '&gt;') 
    .replace(/'/g, '&#39;') 
    .replace(/"/g, '&#34;'); 
} 

我已經做較快(基本上做的事情有一個「替換」的呼叫)的方式播放,但這個執行不夠好,大多數情況下,尤其是在現代瀏覽器。

+0

爲什麼'"'而不是'"'?僅僅因爲它少一個字符? – Lucero 2012-07-19 13:25:47

+0

@習慣的習慣:-)你可以使用「"」,如果你願意的話。 – Pointy 2012-07-19 13:26:27

+0

我更喜歡它,因爲它可以幫助我的弱大腦記住哪個是哪個:''是沒有HTML 4實體定義的那個,所以它必須像這樣被轉義,但除此之外我更喜歡爲了清楚起見,命名實體 – Lucero 2012-07-19 13:28:06

0

Here是一個很好的帖子,它解釋了javascript escape()和unescape()函數的用法,它們可以幫助你解決你正在做的事情。

+0

不,他們不會。這些函數是關於URL語法的轉義字符,而不是HTML語法。 – Pointy 2012-07-19 13:15:24