Показать сообщение отдельно
  #1 (permalink)  
Старый 21.02.2013, 00:32
Интересующийся
Отправить личное сообщение для _SR_71_ Посмотреть профиль Найти все сообщения от _SR_71_
 
Регистрация: 15.03.2012
Сообщений: 15

Проблема с записью в переменную
в функции:
function sendMessage(message) {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "chat.php?message=" + message, true);
    xhr.onreadystatechange = function() {
        if(xhr.readyState != 4) return;
        if(xhr.status != 200) return;
        message = xhr.responseText; // (*)
    }
    xhr.send(null);
    return message;
}

В message не записывается результат, а остаётся такой, как была передана в функцию. Голову уже сломал над этим вопросом. По идее в функции, которая назначена на onreadystatechange, message видна и может этой функцией изменяться.
Вместо строки (*) вставлял конкретно то что должно изменятся на странице, работает, то есть ответ с сервера приходит.

Возможно проблема в этой функции:
function insertMessage() {
    var message = inMessageBox.value;
    if(message == "")
        return;
    message = sendMessage(message);  
    var outputMessage = "<span class='message'>" + message + "</span><br>";
    var lastMessage = outMessageBox.children[outMessageBox.children.length - 1];
    lastMessage.insertAdjacentHTML("afterEnd", outputMessage);
    inMessageBox.value = "";
}
Ответить с цитированием