Имеется некий DIV слой с ID="mess" я создаю код:
document.getElementById('mess').innerHTML = "Текст который нужно вывести в DIV";
Опера и IE выводят, а вот MOZILLA ни в какую, подскажите плиз! как сделать нужно правильно
Спустя 37 минут, 21 секунда (10.05.2007 - 13:30) vasa_c написал(а):
Быть того не может.
У мозиллы есть консоль JavaScript, смотри что там написано.
У мозиллы есть консоль JavaScript, смотри что там написано.
Спустя 22 минуты, 35 секунд (10.05.2007 - 13:53) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 10:30) [snapback]20157[/snapback]
Быть того не может.
У мозиллы есть консоль JavaScript, смотри что там написано.
У мозиллы есть консоль JavaScript, смотри что там написано.
Ошибка: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://localhost/site/xml_java.php? :: echoResult :: line 54" data: no]
Источник: http://localhost/site/xml_java.php?
Строка: 54
Как выйти из ситуации не нашел, на счет ошибки ругается на if (http_request.status == 200)
Тоесть на AJAX
Спустя 13 минут, 51 секунда (10.05.2007 - 14:07) SVFox написал(а):
Цитата(SVFox @ 10.5.2007, 10:53) [snapback]20160[/snapback]
Цитата(vasa_c @ 10.5.2007, 10:30) [snapback]20157[/snapback]
Быть того не может.
У мозиллы есть консоль JavaScript, смотри что там написано.
У мозиллы есть консоль JavaScript, смотри что там написано.
Ошибка: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://localhost/site/xml_java.php? :: echoResult :: line 54" data: no]
Источник: http://localhost/site/xml_java.php?
Строка: 54
Как выйти из ситуации не нашел, на счет ошибки ругается на if (http_request.status == 200)
Тоесть на AJAX
Как исправить ошибку нашел:
надо http_request.open('POST', url, false); - у меня было http_request.open('POST', url, true);
теперь вот с чего тему начал не получается, тоесть полученный текст не выводится в DIV
я попробовал еще и так:
Код
var xmlDoc = http_request.responseXML;
var message = xmlDoc.getElementsByTagName('mes');
var stat = xmlDoc.getElementsByTagName('st');
if(window.ActiveXObject){
s=message[0].text+'-'+stat[0].text;
}else{
s=message[0].firstChild.data+'-'+stat[0].firstChild.data;
}
if (navigator.appName == "Netscape")
{
document.getElementById("mess").appendChild(s);
}
else
{
document.getElementById('mess').innerHTML = s;
}
var message = xmlDoc.getElementsByTagName('mes');
var stat = xmlDoc.getElementsByTagName('st');
if(window.ActiveXObject){
s=message[0].text+'-'+stat[0].text;
}else{
s=message[0].firstChild.data+'-'+stat[0].firstChild.data;
}
if (navigator.appName == "Netscape")
{
document.getElementById("mess").appendChild(s);
}
else
{
document.getElementById('mess').innerHTML = s;
}
чего я так явно вру ? раз нет выводится.
Спустя 46 минут, 33 секунды (10.05.2007 - 14:53) vasa_c написал(а):
где задание обработчика и его полное описание?
Спустя 7 минут, 58 секунд (10.05.2007 - 15:01) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 11:53) [snapback]20172[/snapback]
где задание обработчика и его полное описание?
Полный код:
Код
<html>
<head>
<title></title>
</head>
<script language="javascript" type="text/javascript">
<!--
var http_request = false;
function GrabNumber(){
var url = 'test.php';
makeRequest(url);
return false;
}
function makeRequest(url)
{
http_request = false; // создаем переменную на случай если данные с сервера не получим
if (window.XMLHttpRequest) { // AJAX запрос для Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // AJAX запрос для IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request)
{
alert('Ошибка :( Не получены данные XMLHTTP');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('POST', url, false);
isBusy = true;
http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_request.send("email=gsfdgs");
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var xmlDoc = http_request.responseXML;
var message = xmlDoc.getElementsByTagName('mes');
var stat = xmlDoc.getElementsByTagName('st');
if(window.ActiveXObject){
s=message[0].text+'-'+stat[0].text;
}else{
s=message[0].firstChild.data+'-'+stat[0].firstChild.data;
}
if (window.XMLHttpRequest)
{
document.getElementById('mess').innerHTML = s;
}
else
{
document.getElementById('mess').innerHTML = s;
}
} else {
alert('Данные не получены.');
}
}
}
-->
</script>
<body onload(GrabNumber())>
<div id="mess" name="mess"> </div>
<form id="frm_m">
<INPUT type="submit" value="Отправить" name="btn" onClick="GrabNumber();this.disabled=true;">
</form>
</body>
</html>
<head>
<title></title>
</head>
<script language="javascript" type="text/javascript">
<!--
var http_request = false;
function GrabNumber(){
var url = 'test.php';
makeRequest(url);
return false;
}
function makeRequest(url)
{
http_request = false; // создаем переменную на случай если данные с сервера не получим
if (window.XMLHttpRequest) { // AJAX запрос для Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // AJAX запрос для IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request)
{
alert('Ошибка :( Не получены данные XMLHTTP');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('POST', url, false);
isBusy = true;
http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_request.send("email=gsfdgs");
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var xmlDoc = http_request.responseXML;
var message = xmlDoc.getElementsByTagName('mes');
var stat = xmlDoc.getElementsByTagName('st');
if(window.ActiveXObject){
s=message[0].text+'-'+stat[0].text;
}else{
s=message[0].firstChild.data+'-'+stat[0].firstChild.data;
}
if (window.XMLHttpRequest)
{
document.getElementById('mess').innerHTML = s;
}
else
{
document.getElementById('mess').innerHTML = s;
}
} else {
alert('Данные не получены.');
}
}
}
-->
</script>
<body onload(GrabNumber())>
<div id="mess" name="mess"> </div>
<form id="frm_m">
<INPUT type="submit" value="Отправить" name="btn" onClick="GrabNumber();this.disabled=true;">
</form>
</body>
</html>
php фалй test.php :
Код
<?php
header("Content-type: text/xml");
echo("<?xml version='1.0' encoding='windows-1251'?>\n");
?>
<mailres>
<result>
<st>1</st>
<mes>Вы наврали сильно сильно</mes>
</result>
</mailres>
header("Content-type: text/xml");
echo("<?xml version='1.0' encoding='windows-1251'?>\n");
?>
<mailres>
<result>
<st>1</st>
<mes>Вы наврали сильно сильно</mes>
</result>
</mailres>
Спустя 20 минут, 25 секунд (10.05.2007 - 15:21) vasa_c написал(а):
мясо.
займись элементарной отладкой.
создается ли xmlhttp-объект?
доходит ли управление до alertContent?
доходит ли readstaty до 4?
код возврата 200?
существует ли responseXML?
правильного ли размера возвращается коллекция getElementsByTagName('mes')?
и так далее.
и при объявлении переменных не забывай var.
займись элементарной отладкой.
создается ли xmlhttp-объект?
доходит ли управление до alertContent?
доходит ли readstaty до 4?
код возврата 200?
существует ли responseXML?
правильного ли размера возвращается коллекция getElementsByTagName('mes')?
и так далее.
и при объявлении переменных не забывай var.
Спустя 6 минут, 23 секунды (10.05.2007 - 15:28) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 12:21) [snapback]20175[/snapback]
мясо.
займись элементарной отладкой.
создается ли xmlhttp-объект?
доходит ли управление до alertContent?
доходит ли readstaty до 4?
код возврата 200?
существует ли responseXML?
правильного ли размера возвращается коллекция getElementsByTagName('mes')?
и так далее.
и при объявлении переменных не забывай var.
займись элементарной отладкой.
создается ли xmlhttp-объект?
доходит ли управление до alertContent?
доходит ли readstaty до 4?
код возврата 200?
существует ли responseXML?
правильного ли размера возвращается коллекция getElementsByTagName('mes')?
и так далее.
и при объявлении переменных не забывай var.
Этим и занимаюсь, код возврата 200 - в мозиле теперь проходит, ошибок нет. дальше глухо
И почему не могут создать единый стандарт для брузеров, написал протестировал и уверен что работать будет везде.
на IE и Opera все ок, зато мозила не хотит
Спустя 10 минут, 50 секунд (10.05.2007 - 15:39) vasa_c написал(а):
var xmlDoc = http_request.responseXML.documentElement;
так попробуй
так попробуй
Спустя 10 минут, 50 секунд (10.05.2007 - 15:50) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 12:39) [snapback]20178[/snapback]
var xmlDoc = http_request.responseXML.documentElement;
так попробуй
так попробуй
Увы то же самое в IE и так и так, нормально в Мозиле нет.
сейчас обнаружил http_request.onreadystatechange = alertContents; - не вызывает мозила функцию
alertContents если делаю alertContents(); вызывает но уже проверку http_request не делает.
может кто литературу подскажет по разнице брузеров ?
Спустя 4 минуты, 50 секунд (10.05.2007 - 15:54) vasa_c написал(а):
здесь нет особой разницы
откуда он взялся если alertContents не вызвался?
Цитата
код возврата 200
откуда он взялся если alertContents не вызвался?
Спустя 4 минуты, 35 секунд (10.05.2007 - 15:59) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 12:54) [snapback]20181[/snapback]
здесь нет особой разницы
откуда он взялся если alertContents не вызвался?
Цитата
код возврата 200
откуда он взялся если alertContents не вызвался?
Еслиб я знал
при http_request.open('post', url, true); мозила показывает ошибку выше описано
ставлю false ошибки нет но и функция не вызывается, я уже запутался совсем.
Спустя 12 минут, 27 секунд (10.05.2007 - 16:11) vasa_c написал(а):
false ставить нельзя. Это будет синхронный обработчик. Убьет браузер.
убери это
невозможна ситуация при которой параллельно отправляются два запроса?
Код
http_request.overrideMimeType('text/xml');
убери это
невозможна ситуация при которой параллельно отправляются два запроса?
Спустя 9 минут, 45 секунд (10.05.2007 - 16:21) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 13:11) [snapback]20183[/snapback]
false ставить нельзя. Это будет синхронный обработчик. Убьет браузер.
убери это
невозможна ситуация при которой параллельно отправляются два запроса?
Код
http_request.overrideMimeType('text/xml');
убери это
невозможна ситуация при которой параллельно отправляются два запроса?
нет, выше код полностью выложен, там есть в body также вызов функции, (я это уже по разному пробовал) на самом деле я его убрал.
и функция выполняется только при нажатии submit.
еще что обнаружил: накидал форму отправки писульки на мыло, нажал отправить, мозила мелькнула, как будто перезапустила страничку но текстов не показала, и письмо всетаки отправилось, на локалке не видно, что мозила мигает, на хосте видно было.
Спустя 16 минут, 48 секунд (10.05.2007 - 16:38) vasa_c написал(а):
Код
<form id="frm_m">
<INPUT type="submit" value="Отправить" name="btn" onClick="GrabNumber();this.disabled=true;">
</form>
<INPUT type="submit" value="Отправить" name="btn" onClick="GrabNumber();this.disabled=true;">
</form>
так, блин, он у тебя форму и отправляет тут же.
и ты утверждаешь, что в IE работает.
нужно отменять действие по умолчанию
Код
onClick="GrabNumber();this.disabled=true;return false;"
Код
<body onload(GrabNumber())>
это что такое?
Спустя 8 минут, 37 секунд (10.05.2007 - 16:47) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 13:38) [snapback]20190[/snapback]
Код
<form id="frm_m">
<INPUT type="submit" value="Отправить" name="btn" onClick="GrabNumber();this.disabled=true;">
</form>
<INPUT type="submit" value="Отправить" name="btn" onClick="GrabNumber();this.disabled=true;">
</form>
так, блин, он у тебя форму и отправляет тут же.
и ты утверждаешь, что в IE работает.
нужно отменять действие по умолчанию
Код
onClick="GrabNumber();this.disabled=true;return false;"
Код
<body onload(GrabNumber())>
это что такое?
в IE и Опера работает точно.
Код
<body onload(GrabNumber())>
- это я примеры смотрел и впялил, когда писал забыл убрать.про отправляет форму я не понял ???
Спустя 3 минуты, 27 секунд (10.05.2007 - 16:50) SVFox написал(а):
А еще я полный Лошара в JavaScript по этому и спрашиваю.
Спустя 10 часов, 34 минуты, 48 секунд (11.05.2007 - 03:25) SVFox написал(а):
Ура, победил
Ошибка была в форме отправки:
я сделал так и все пошло
и еще вызов функции обработки статуса запроса сделал так:
а так же:
Спасибо всем кто помогал!
Ошибка была в форме отправки:
я сделал так и все пошло
Код
<form id="frm_m" onsubmit="GrabNumber(); return false;">
<INPUT type="submit" value="Отправить" name="btn">
</form>
<INPUT type="submit" value="Отправить" name="btn">
</form>
и еще вызов функции обработки статуса запроса сделал так:
Код
http_request.onreadystatechange = function() { alertContents(http_request); }
а так же:
Код
http_request.open('post', url, [b][color=#FF0000]true[/color][/b]);
Спасибо всем кто помогал!
_____________