显示嵌入HTML的SignalR消息
本文关键字:SignalR 消息 HTML 显示 | 更新日期: 2023-09-27 18:14:01
我已经开始使用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有"this is bold",但它没有将其呈现为HTML,而是将其显示为字符串。我怎样才能让它呈现为HTML?
我试过对<因为,lt;和> as>但这行不通。我也试过%3C和%3E,但它们也不起作用。
调用.text
会改变对象的文本,并有意阻止解析html或脚本。
您可以通过使用.html
var encodedMesg = $('<div />').html(message);
use this:
var encodedMsg = $(")。text(消息). html ();