显示带有嵌入式HTML的SignalR消息

时间:2016-10-20 21:12:50

标签: javascript c# html signalr

我已经开始玩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具有&#34;这是&lt; b&gt;粗体&lt; / b&gt;&#34;,但它不是将其呈现为HTML,而是将其显示为字符串。如何允许它以HTML格式呈现?

我试过编码&lt; as&amp; lt;和&gt; as&amp; gt;但那没有用。我也尝试了%3C和%3E,但他们没有做任何工作。

2 个答案:

答案 0 :(得分:0)

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

您可以通过使用.html

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

答案 1 :(得分:0)

使用它:

var encodedMsg = $('')。text(message).html();