2013-03-26 164 views
1

我一直在聊天框工作,我使用Node.js + socket.io進行客戶端 - 服務器通信,所以我不能執行PHP代碼(我讀過這可能,但是這不是建議和難以實現的)。除非用戶使用HTML或腳本標記發送消息,否則一切正常。避免HTML和腳本標記呈現

我試着用我在here中找到的函數刪除那些標籤。它工作正常,但只適用於HTML標記,然後我想:嗯,我可以首先使用正則表達式刪除腳本標記。這樣

.replace(/<script.*>.*<\/script>/ims, " ")

,然後東西刪除HTML標籤,但我不知道這種方法的黑客證明,,這對每個發送的消息很多過程。

是否有任何形式的附加文字$("#div").append(message);沒有呈現HTML/JavaScript代碼? ---就像在twitch.tv那裏打印文本那樣,如果您發送帶有HTML/JS/PHP代碼的消息,則會按照您輸入的方式打印該消息。

或者,有沒有其他的方式來刪除標籤?

謝謝你的時間。

+2

您可以調用'.text()'函數。 – 2013-03-26 20:30:27

回答

1

只需附加一個div,將消息設置爲文本。

$("#div").append($("<div>").text(message)); 
+0

好主意,謝謝,它工作。我覺得這一次我去了最簡單的解決方案 – Mollo 2013-03-26 20:49:43

+0

我剛剛意識到,它爲我每次追加這樣做的結尾添加了一條斷線。我怎麼修復它?謝謝。 – Mollo 2013-03-27 22:38:38