显示嵌入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>:&nbsp;&nbsp' + 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,但它们也不起作用。

显示嵌入HTML的SignalR消息

调用.text会改变对象的文本,并有意阻止解析html或脚本。

您可以通过使用.html

更改值来解析它
var encodedMesg = $('<div />').html(message);

use this:

var encodedMsg = $(")。text(消息). html ();