Выручайте, мастера жабаскрипта!

12
Таггу x_x
На сайте с 31.10.2005
Offline
445
816

Вот этот код функции, которая вызывется он клик, работает в осле, но не работает, хоть ты обосрись, в FF:

function pushem(sid,lt,lu)

{
var lt=document.getElementById("vtitle").value;
var lu=document.getElementById("vurl").value;

alert(sUrl2+"&sid="+sid+"&lt="+lt+"&lu="+lu); // для проверки, алерт работает везде!
makeAJAXCall(sUrl2+"&sid="+sid+"&lt="+lt+"&lu="+lu);

}

Алерт все правильно пишет, а вот дальше фокс уходит в ошибку, а осёл исправно все выполняет, что за хреновина?

FF выдает 0x80004005 (NS ERROR FAILURE), про который есть даже вот такая страничка

Однако советы с этой странички мне не помогают. В общем, надеюсь я просто тупой и не знаю чего-то элементарного, и вы мне сейчас все быстренько объясните? :)

☠️☠️☠️
wdsg
На сайте с 09.02.2009
Offline
31
#1
Tarry:
Вот этот код функции, которая вызывется он клик, работает в осле, но не работает, хоть ты обосрись, в FF:

function pushem(sid,lt,lu)

{
var lt=document.getElementById("vtitle").value;
var lu=document.getElementById("vurl").value;

alert(sUrl2+"&sid="+sid+"&lt="+lt+"&lu="+lu); // для проверки, алерт работает везде!
makeAJAXCall(sUrl2+"&sid="+sid+"&lt="+lt+"&lu="+lu);

}


Алерт все правильно пишет, а вот дальше фокс уходит в ошибку, а осёл исправно все выполняет, что за хреновина?

FF выдает 0x80004005 (NS ERROR FAILURE), про который есть даже вот такая страничка

Однако советы с этой странички мне не помогают. В общем, надеюсь я просто тупой и не знаю чего-то элементарного, и вы мне сейчас все быстренько объясните? :)

Код makeAJAXCall(...) {...} зашлите в личку, будьте добры.

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
DI
На сайте с 03.01.2007
Offline
123
#2

Так ошибка в функции makeAJAXCall, кода которой тут нет.

Высказывание идиотского утверждения требует на порядок меньше усилий, чем его последовательное и обоснованное опровержение и более того, иногда это опровержение вообще невозможно. © (http://zhurnal.lib.ru/s/shapiro_m_a/raspidiota.shtml)
J
На сайте с 02.02.2009
Offline
53
#3

покажите, пожалуйста, значение sUrl2

Таггу x_x
На сайте с 31.10.2005
Offline
445
#4

И так:

sUrl2 = "?page=genesis";

//выполняет асинхронный GET

function makeAJAXCall(ajaxUrl){
if (httpRequester) {
httpRequester.open("GET", ajaxUrl, true);
httpRequester.onreadystatechange = processResponse;
httpRequester.send(null);

}
}

Ну и за одно

//CallBack-функция. Выводит полученные асинхронно данные или сообщение об ошибке

function processResponse() {
if (httpRequester.readyState == READY_STATE_COMPLETE) {
if (httpRequester.status==200) {
printToPage ("<font color=\"blue\">"+httpRequester.responseText+"</font>");
} else {
var message = "Problem retrieving data. requestStatus="+httpRequester.status+". Message="+httpRequester.statusText;
printToPage ("<font color=\"red\">"+message+"</font>");
}
}
}
J
На сайте с 02.02.2009
Offline
53
#5

Попробуйте /? ... для урла

wdsg
На сайте с 09.02.2009
Offline
31
#6

Код инициализации httpRequester где? Он выглядит примерно так:

var httpRequester = false;

try {
httpRequester = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
try {
httpRequester = new XMLHttpRequest();
}
catch (e2) {
httpRequester = false;
}
}
Таггу x_x
На сайте с 31.10.2005
Offline
445
#7

wdsg, вод целиком все

<script type="text/javascript">


sUrl = "?page=jason";
sUrl2 = "?page=genesis";
//функция возвращает экземпляр класса XMLHttpRequest

function killit(sid,lid,dv)
{
printToPage ("<font color=\"blue\">Загрузка...</font>",dv);
makeAJAXCall(sUrl+"&sid="+sid+"&lid="+lid);
printToPage ("<font color=\"blue\">Удалено!</font>",dv);

}

function pushem(sid,lt,lu)
{
var lt=document.getElementById("vtitle").value;
var lu=document.getElementById("vurl").value;
makeAJAXCall(sUrl2+"&sid="+sid+"&lt="+lt+"&lu="+lu);
}



function getHTTPRequestObject() {
var xmlHttpRequest;
if (typeof ActiveXObject != 'undefined') {
xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
} else if (typeof XMLHttpRequest != 'undefined') {
xmlHttpRequest = new XMLHttpRequest();
} else {
xmlHttpRequest = false;
}
return xmlHttpRequest;
}

var httpRequester = getHTTPRequestObject(); //Рабочий экземпляр класса XMLHttpRequest

var READY_STATE_COMPLETE=4;

//выполняет асинхронный GET
function makeAJAXCall(ajaxUrl){
if (httpRequester) {
httpRequester.open("GET", ajaxUrl, true);
httpRequester.onreadystatechange = processResponse;
httpRequester.send(null);

}
}

//CallBack-функция. Выводит полученные асинхронно данные или сообщение об ошибке
function processResponse() {
if (httpRequester.readyState == READY_STATE_COMPLETE) {
if (httpRequester.status==200) {
printToPage ("<font color=\"blue\">"+httpRequester.responseText+"</font>");
} else {
var message = "Problem retrieving data. requestStatus="+httpRequester.status+". Message="+httpRequester.statusText;
printToPage ("<font color=\"red\">"+message+"</font>");
}
}
}

//Выводим переданный HTML в элемент с id="result"
function printToPage(value,dv){
resultDiv = document.getElementById(dv);
resultDiv.innerHTML = value;
}






</script>
wdsg
На сайте с 09.02.2009
Offline
31
#8

С виду всё верно и должно работать. Что Вы отдаёте по запросу? Если мне не изменяет память, в некоторых версиях FF требовал явный заголовок "Content-type: text/xml" в ответе. Решалось .overrideMimeType('text/xml')

[Удален]
#9

У меня все работает, только у вас ошибка в функции printToPage.

Вы объявили её с двумя параметрами, а вызываете с одной. Отладчик должен ругаться что resultDiv is null

Если это не решит проблему, то киньте урл в личку я посмотрю че у вас там.

Таггу x_x
На сайте с 31.10.2005
Offline
445
#10

Братцы, все заработало, я все понял (частично).

neolord, вы правы, но на это можно плюнуть, это не критично.

Засада была в другом. Собственно после makeAJAXCall(sUrl2+"&sid="+sid+"&lt="+lt+"&lu="+lu);

я вызывал еще document.window.location.href="http://www.asasa.com";

Дабы пушнуть юзера на обновленный документ, и вот это и вызывало ошибку httprequest в фоксе, при чем я никак не могу понять каким макаром ПОСЛЕ выполнения аякса это говно высплывало, бред какой-то. Мысли есть? А то пришлось динамически в нужный див писать возможный резалт работы скрипта да и вообщк как-то через анус получилось...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий