[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: IE и MOZILLA
SVFox
Может есть такая тема но увы я не нашел sad.gif

Имеется некий DIV слой с ID="mess" я создаю код:
document.getElementById('mess').innerHTML = "Текст который нужно вывести в DIV";

Опера и IE выводят, а вот MOZILLA ни в какую, подскажите плиз! как сделать нужно правильно



Спустя 37 минут, 21 секунда (10.05.2007 - 13:30) vasa_c написал(а):
Быть того не может.
У мозиллы есть консоль JavaScript, смотри что там написано.

Спустя 22 минуты, 35 секунд (10.05.2007 - 13:53) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 10:30) [snapback]20157[/snapback]
Быть того не может.
У мозиллы есть консоль 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, смотри что там написано.


Ошибка: [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;
}


чего я так явно вру ? раз нет выводится.

Спустя 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>
&lt;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>


Спустя 20 минут, 25 секунд (10.05.2007 - 15:21) vasa_c написал(а):
мясо.
займись элементарной отладкой.
создается ли 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.


Этим и занимаюсь, код возврата 200 - в мозиле теперь проходит, ошибок нет. дальше глухо
И почему не могут создать единый стандарт для брузеров, написал протестировал и уверен что работать будет везде.
на IE и Opera все ок, зато мозила не хотит sad.gif

Спустя 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 написал(а):
здесь нет особой разницы
Цитата
код возврата 200

откуда он взялся если alertContents не вызвался?

Спустя 4 минуты, 35 секунд (10.05.2007 - 15:59) SVFox написал(а):
Цитата(vasa_c @ 10.5.2007, 12:54) [snapback]20181[/snapback]
здесь нет особой разницы
Цитата
код возврата 200

откуда он взялся если alertContents не вызвался?


Еслиб я знал sad.gif

при 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>


так, блин, он у тебя форму и отправляет тут же.
и ты утверждаешь, что в 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>


так, блин, он у тебя форму и отправляет тут же.
и ты утверждаешь, что в 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 написал(а):
Ура, победил smile.gif

Ошибка была в форме отправки:

я сделал так и все пошло

Код
<form id="frm_m" onsubmit="GrabNumber(); return false;">
<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]);


Спасибо всем кто помогал!


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.