HTML li элемент не будет, кроме - PullRequest
       10

HTML li элемент не будет, кроме

0 голосов
/ 20 февраля 2020

Я рассматриваю этот пример сигналаR по адресу: https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-3.1&tabs=visual-studio.

Все работает, когда кнопка «Отправить» отправляет пользователя и сообщение на серверный концентратор чата signalR. Затем концентратор отправляет пользователю и сообщение обратно всем клиентам функцию обратного вызова «ReceiveMessage» для объекта подключения концентратора в Javascript. У меня есть куча операторов console.log, показывающих, что пользователь и сообщение сделаны на сервере и обратно.

Но есть эта закодированная переменная сообщения, которую вы назначаете элементу li, который добавляется обратно к элементу в DOM.

Но в Javascript, если я пытаюсь назначить encodedMsg для li, выполнение просто останавливается. Если я присваиваю stati c значение 'Hello', он продолжает работу и работает.

Это обратный вызов signalR "ReceiveMessages":

connection.on("ReceiveMessage", function (user, message) {
console.log("In client side: ReceiveMessage");
console.log(`user: ${user}`);
console.log(`message: ${message}`);
var msg = message.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
console.log(`msg: ${msg}`);
var encodeMsg = user + " says " + msg;
console.log(`encodeMsg: ${encodeMsg}`);
var li = document.createElement("li");
console.log(`li: ${li}`);
li.textContent = 'Hello'; //encodedMsg;
console.log(`li.textContent: ${li.textContent}`);
document.getElementById("messagesList").appendChild(li);
});

Здесь li.textContent получает значение :

enter image description here

Но если я попытаюсь добавить фактическое закодированное сообщение, оно просто остановит выполнение:

connection.on("ReceiveMessage", function (user, message) {
    console.log("In client side: ReceiveMessage");
    console.log(`user: ${user}`);
    console.log(`message: ${message}`);
    var msg = message.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
    console.log(`msg: ${msg}`);
    var encodeMsg = user + " says " + msg;
    console.log(`encodeMsg: ${encodeMsg}`);
    var li = document.createElement("li");
    console.log(`li: ${li}`);
    /*li.textContent = 'Hello'; //encodedMsg; */
    li.textContent = encodedMsg;
    console.log(`li.textContent: ${li.textContent}`);
    document.getElementById("messagesList").appendChild(li);
    });

enter image description here

Я не очень хорош в JavaScript. Кто-нибудь видит, почему он не хочет назначать динамическое c encodedMsg var для li textContent?

1 Ответ

2 голосов
/ 20 февраля 2020

У вас есть опечатка. Вы определили свою переменную как encodeMsg (примечание отсутствует d ), но вы используете ее как encodedMsg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...