& lt; script>作为消息发送时显示空白的标记

<script> tag showing blank when sent as message

本文关键字:显示 空白 消息 script lt      更新时间:2023-09-26

我使用signalR创建了一个聊天应用程序。对我来说一切都很好。但是在发送信息的时候有一个小问题。当我发送脚本标签作为消息时,它在我的聊天窗口显示空白。

我的代码添加消息到聊天窗口如下

$('#' + ctrId).find('#divMessage').append('<div class="message"><span class="userName">' + fromUserName + '</span>: ' + message + '</div>');

消息将作为字符串发送到服务器端,如"<script>",但当附加它时,它什么也不显示。

您的消息正在被解析为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);

…不过需要强调的是,你应该真的在服务器上进行编码

首先看一下谷歌搜索结果,你就会知道答案。

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>');
http://mg.to/2006/01/25/json-for-jquery

可以't追加<元素>

我可以用jQuery创建脚本标签吗?