2016-10-20 2 views
0

Я начал играть с SignalR, конечно, начиная с начального чат-хаба, который, я полагаю, каждый делает в какой-то момент. Я хочу изменить его так, чтобы, если пользователь вводит текст в HTML в своем сообщении, когда он отображается, он отображает отображаемый HTML как противопоставленный только строке с тегами HTML в ней.Отображение сообщения SignalR со встроенным 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 имеет "это < б > полужирный </б >", но вместо того, что делает его, как HTML, он просто показывает его как строка. Как я могу разрешить это отображение как HTML?

Я пробовал кодировать < как & lt; и> как & gt; но это не работало. Я также пробовал% 3C и% 3E, но они тоже не работали.

ответ

0

Вызов .text изменяет текст объекта и преднамеренно мешает анализу html или скриптов.

Вы можете получить его, чтобы разобрать его, изменив значение с .html

var encodedMesg = $('<div />').html(message); 
+0

Это не работает, теперь оно отображается как [object Object] – Wizaerd

+0

Хорошо, я понял, используя ваше предложение только .html (message), теперь мне нужно получить доступ к значению как encodedMesg [0] .innerHTML , который делает то, что я хочу, чтобы он делал. Спасибо. – Wizaerd

+0

@Wizaerd: не стесняйтесь отмечать это как ответ, чтобы он мог потенциально помочь другим в будущем. –

0

используют это:.

вар encodedMsg = $ ('') текст (сообщение) .html();

+2

И почему это работает? Пожалуйста, добавьте объяснение ради будущих читателей – litelite

 Смежные вопросы

  • Нет связанных вопросов^_^