2012-10-02 48 views
2

我們有一個默認自動生成的顯示消息,但可能會被來自url的GET變量覆蓋。由於我們需要將消息視爲用戶輸入,因此必須轉義才能顯示。但是,我們希望保留包含換行符的能力。在轉義html中渲染換行符

換行符<br>
這不會起作用,因爲逃避HTML破壞<br>標籤。

換行符\n
我無法弄清楚如何讓\n呈現爲換行符。我認爲把它在一個標籤將正確地呈現,但沒有運氣:http://jsfiddle.net/7L932/

回答

3

你在做什麼是除了你應該把\n字符(新行)或多或少的罰款,沒有轉義序列在你的html中(Prinzhorn所說的也很有道理,所以我會讚揚他)。

+0

邁克爾 - 對不起,我不明白你的答案的第一部分,你可以澄清? – Yarin

+0

@Yarin你直接寫了「\ n」而不是擊中返回鍵;-) – Prinzhorn

+0

那麼,在jsfiddle中鏈接的是包含反斜槓和'n'的HTML。你想要的是'\ n'組合代表的角色。就像,如果在JavaScript中使用字符串'「a \ nb」',它將不包含反斜槓和字母n。 –

7

逃離HTML和然後<br>取代\n。如果你想使用\ n

,我解決您的搗鼓你http://jsfiddle.net/hr3bg/

+0

我們讓我們的模板框架好點 - 爲我們做退讓,但我們可以只是做它手動.. – Yarin

2

您的理論的聲音,但\n是不是HTML認可的插入新行的方式。它或者明確地(因爲我插入了新的.linebreaks元素)作爲標記中的文字返回,或者,如果您使用某種中介腳本語言確實確認\n(如JS),請執行該操作( 。因爲我做你的第一個.linebreaks與我插入了jQuery代碼

看到我的調整,以你的例子:http://jsfiddle.net/barney/7L932/2/

+0

巴尼 - 謝謝,這正是我犯的錯誤 – Yarin

+0

很高興我能幫忙!我可以收到答覆標記嗎? – Barney