我使用signalR创建了一个聊天应用程序。一切都适合我。但是在发送消息时存在一个小问题。 当我发送脚本标记作为消息时,它在我的聊天窗口中显示为空白。
我将代码附加到聊天窗口的代码,如下所示
$('#' + ctrId).find('#divMessage').append('<div class="message"><span class="userName">' + fromUserName + '</span>: ' + message + '</div>');
邮件将以“<script>
”之类的字符串的形式发送到服务器端,但在附加时不显示任何内容。
答案 0 :(得分:0)
您的邮件正在被解析为HTML。您可以转义服务器上的HTML实体(取决于您的服务器端语言,但无论如何都是首选),或者您可以使用文本节点来设置消息的textContent
,而不是HTML;
var markup = $(jQuery.parseHTML('<div class="message"><span class="userName"></span></div'));
markup.find('.userName').text(fromUserName);
markup.append(document.createTextNode(message));
$('#' + ctrId).find('#divMessage').append(markup);
...但只是要强调,你应该真的在服务器上对此进行编码。
答案 1 :(得分:-1)
首先看一下谷歌搜索结果会给你答案。
var url = "your script url";
var message = document.createElement('script');
message.type = 'text/javascript';
message.src = url;
$('#' + ctrId).find('#divMessage').append('<div class="message"><span class="userName">' + fromUserName + '</span>: ' + message + '</div>');