我已经开始玩SignalR了,当然从最初的聊天中心开始,我想每个人都会在某一点上做。我想修改它,以便如果用户在其消息中键入HTML,当它显示时,它会显示呈现的HTML,而不仅仅是带有HTML标记的字符串。
这是我的javascript:
<script type="text/javascript">
$(function () {
var chat = $.connection.chatHub;
chat.client.broadcastMessage = function (name, message) {
var encodedName = $('<div />').text(name).html();
var encodedMesg = $('<div />').text(message).html();
if (message === "joined session") {
$('#discussion').append('<li><strong>' + encodedName + ' ' + encodedMesg + '</strong></li>');
} else {
$('#discussion').append('<li><strong>' + encodedName + '</strong>:  ' + encodedMesg + '</li>');
}
};
$('#message').focus();
$.connection.hub.start().done(function () {
chat.server.send("@FullName", "joined session");
$('#sendmessage').click(function () {
chat.server.send("@FullName", $('#message').val());
$('#message').val("").focus();
});
});
});
encodedMesg具有&#34;这是&lt; b&gt;粗体&lt; / b&gt;&#34;,但它不是将其呈现为HTML,而是将其显示为字符串。如何允许它以HTML格式呈现?
我试过编码&lt; as&amp; lt;和&gt; as&amp; gt;但那没有用。我也尝试了%3C和%3E,但他们没有做任何工作。
答案 0 :(得分:0)
调用.text
会更改对象的文本,并故意阻止解析html或脚本。
您可以通过使用.html
var encodedMesg = $('<div />').html(message);
答案 1 :(得分:0)
使用它:
var encodedMsg = $('')。text(message).html();