Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ajax, Не работает что то! 
:(
    Опции темы
zibox86
Дата 4.2.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 11.12.2007

Репутация: 1
Всего: 1



Код

// JavaScript Document
var chatURL = "chat.php";
var getColorURL = "get_color.php";
var xmlHttpGetMessages = createXmlHttpRequestObject();
var xmlHttpGetColor = createXmlHttpRequestObject();
var updateInterval = 10;/*Перуд обращения за новыми сообщениями*/
var debugMode = true;
var cache = new Array();
var lastMessageID = -1;
var mouseX,mouseY;
function createXmlHttpRequestObject()
{
    var xmlHttp;
    try
    {
        xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP");
        for(var i=0; i < XmlHttpVersions.length && !xmlHttp; i++)
        {
            try
            {
                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch(e){}
        }
    }
    if(!xmlHttp)
     {
         alert("Ошибка создания объекта");
     }
     else
     {
         return xmlHttp;
     }
}

function init()
{
    var oMessageBox = document.getElementById("messageBox");
    oMessageBox.setAttribute("autocomplete", "off");
    var oSampleText = document.getElementById("sampleText");
    oSampleText.style.color = "black";
    checkUsername();
    requestNewMessages();
}

function checkUsername()
{
    var oUser = document.getElementById("userName");
    if(oUser.value == "") oUser.value = "Guest" + Math.floor(Math.random()*1000);
}
function sendMessage()
{
    var oCurrentMessage = document.getElementById("messageBox");
    var currentUser = document.getElementById("userName").value;
    var currentColor = document.getElementById("color").value;
    if(trim(oCurrentMessage.value) != "" && trim(currentUser) != "" && trim(currentColor) != "")
    {
        params = "mode=SendAndRetrieveNew" + "&id=" + encodeURIComponent(lastMessageID) + "&color=" + encodeURIComponent(currentColor) + "&name=" + encodeURIComponent(currentUser) + "&message=" + encodeURIComponent(oCurrentMessage.Value);
        cache.push(params);
        oCurrentMessage.value = "";
    }
}
function deleteMessages()
{
    params = "mode=DeleteAndRetrieveNew";
    cache.push(params);
}
function requestNewMessages()
{
    var currentUser = document.getElementById("userName").value;
    var currentColor = document.getElementById("color").value;
    if(xmlHttpGetMessages)
    {
        try
        {
            if(xmlHttpGetMessages.readyState == 4 || xmlHttpGetMessages.readyState == 0)
            {
                var params="";
                if(cache.length>0) params = cache.shift();
                else params = "mod=RetrieveNew" + "&id=" + lastMessageID;
                xmlHttpGetMessages.open("POST",chatURL,true);
                xmlHttpGetMessages.setRequestHeader("Content-Type","application/x-form-urlencoded");
                xmlHttpGetMessages.onreadystatechange = hendleReceivingMessages;
                xmlHttpGetMessages.send(params);
            }
            else
            {
                setTimeout("requestNewMessages()",updateInterval);
            }
        }
        catch(e)
        {
            displayError(e.toString());
        }
    }
}

function hendleReceivingMessages()
{
    if(xmlHttpGetMessages.readyState == 4)
    {
        if(xmlHttpGetMessages.status == 200)
        {
            try
            {
                readMessages();
            }
            catch(e)
            {
                displayError(e.toString());
            }
        }
        else
        {
            displayError(xmlHttpGetMessages.statusText);
        }
    }
}
function readMessages()
{
    var response = xmlHttpGetMessages.responseText;
    if(response.indexOf("ERRNO") >= 0 || response.indexOf("error:") >= 0 || response.length == 0)
    {
        throw(response.length == 0 ? "Void server response." : response);
    }
    response = xmlHttpGetMessages.responseXML.documentElement;
    clearChat = response.getElementsByTagName('clear').item(0).firstChild.data;
    if(clearChat == "true")
    {
        document.getElementById("scroll").innerHTML="";
        lastMessageID = -1;
    }
    idArray = response.getElementsByTagName("id");
    colorArray = response.getElementsByTagName("color");
    nameArray = response.getElementsByTagName("name");
    timeArray = response.getElementsByTagName("time");
    messageArray = response.getElementsByTagName("message");
    displayMessages(idArray, colorArray, nameArray, timeArray, messageArray);
    if(idArray.length > 0) lastMessageID = idArray.item(idArray.length - 1).firstChild.data;
    setTimeout("requestNewMessages()", updateInterval);
}
function displayMessages(idArray, colorArray, nameArray, timeArray, messageArray)
{
    for(var i=0;i<idArray.length;i++)
    {
        var color = colorArray.item(i).firstChild.data.toString();
        var time = timeArray.item(i).firstChild.data.toString();
        var name = nameArray.item(i).firstChild.data.toString()
        var message = messageArray.item(i).firstChild.data.toString();
        var htmlMessage = "";
        htmlMessage +="<div class=\"item\" style=\"color:" + color + "\">";
        htmlMeassge +="[" + time +"]" + name + "said:<br>";
        htmlMeassge +=message.toString();
        htmlMessage +="</div>";
        displayMessage(htmlMessage);
    }
}
function displayMessage(message)
{
    var oScroll = document.getElementById("scroll");
    var scrollDown = (oScroll.scrollHeight - oScroll.scrollTop <= oScroll.offsetHeight);
    oScroll.innerHTML += message;
    oScroll.scrollTop = scrollDown ? oScroll.scrollHeight : oScroll.scrollTop;
}
function displayError(message)
{
    displayMessage("Ошибка доступа к серверу!" + (debugMode ? "<br>" + message : ""));
}
function handleKey(e)
{
    e = (!e) ? window.event : e;
    code = (e.charCode) ? e.charCode : ((e.KeyCode) ? e.keyCode : ((e.which) ? e.which : 0));
    if(e.type == "keydown")
    {
        if(code == 13)
        {
            sendMessage();
        }
    }
}
function trim(s)
{
    return s.replace(/(^\s+)|(\s+$)/g,"")
}
function getMouseXY(e)
{
    if(window.ActiveXObject)
    {
        mouseX = window.event.x + document.body.scrollLeft;
        mouseY = window.event.y + document.body.scrollTop;
    }
    else
    {
        mouseX = e.pageX;
        mouseY = e.pageY;
    }
}
function getColor(e)
{
    getMouseXY(e);
    if(xmlHttpGetColor)
    {
        var offsetX = mouseX;
        var offsetY = mouseY;
        var oPalette = document.getElementById("palette");
        var oTd = document.getElementById("colorpicker");
        if(window.ActiveXObject)
        {
            offsetX = window.event.offsetX;
            offsetY = window.event.offsetY
        }
        else
        {
            offsetX -= oPalette.offsetLeft + oTd.offsetLeft;
            offsetY -= oPalette.offsetTop + oTd.offsetTop;
        }
        try
        {
            if(xmlHttpGetColor.readyState == 4 || xmlHttpGetColor.readyState == 0)
            {
                params = "?offsetx=" + offsetX + "&offsety=" + offsetY;
                xmlHttpGetColor.open("POST",getColorURL + params,true);
                xmlHttpGetColor.onreadystatechange = handleGettingColor;
                xmlHttpGetColor.send(null);
            }
        }
        catch(e)
        {
            displayError(xmlHttp.statusText);
        }
    }
}
function handleGettingColor()
{
    if(xmlHttpGetColor.readyState == 4)
    {
        if(xmlHttpGetColor.status == 200)
        {
            try
            {
                chengeColor();
            }
            catch(e)
            {
                displayError(xmlHttpGetColor.statusText);
            }
        }
        else
        {
            displayError(xmlHttpGetColor.statusText);
        }
    }
}
function chengeColor()
{
    response = xmlHttpGetColor.responseText;
    if(response.indexOf("ERRNO") >= 0 || response.indexOf("error:") >= 0 || response.length == 0 ? "Не возможно изменить цвет!" : respose);
    var oColor = document.getElementById("sampleText");
    oColor.value = response;
    oSampleText.style.color = response;
}



Не могу найти ошибку!
Может кто подскажет?
PM MAIL WWW   Вверх
Sardar
Дата 4.2.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Если выкладываешь полный код, то ссылка на страницу или хотя бы текст ошибки из консоли обязателен. Помни человек ленив, редко кому захочется перечитывать 250 строк однотипного кода.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.