Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Опера и ИЕ + XML
 
 автор: bronenos   (05.03.2007 в 23:23)   письмо автору
 
 

Проблема заключается в том, что когда я получаю по AJAX ответ в виде responseXML, то Опера спокойно разбирает этот объект и выводит на экран, а ИЕ - нет, экран пустой (в нужном месте), и, что самое главное, ошибок не дает, чтоб зацепиться, никаких!
Никто не сталкивался с таким?

   
 
 автор: bronenos   (06.03.2007 в 14:36)   письмо автору
 
   для: bronenos   (05.03.2007 в 23:23)
 

Что, никто не знает? =(

   
 
 автор: coloboc66   (06.03.2007 в 14:40)   письмо автору
 
   для: bronenos   (06.03.2007 в 14:36)
 

Может, кодировку XML-документа нужно сменить?

   
 
 автор: bronenos   (06.03.2007 в 15:26)   письмо автору
 
   для: coloboc66   (06.03.2007 в 14:40)
 

с кодировкой порядок
и стоит
<?xml version='1.0' encoding='windows-1251'?>

   
 
 автор: coloboc66   (06.03.2007 в 15:40)   письмо автору
 
   для: bronenos   (06.03.2007 в 15:26)
 

Я столкнулся только что с подобной проблемой. Вы XML-док-т через DOM разбираете? FF и IE по-разному интерпретируют дерево документа.

   
 
 автор: bronenos   (06.03.2007 в 20:23)   письмо автору
 
   для: coloboc66   (06.03.2007 в 15:40)
 

и что делать?

   
 
 автор: RMW   (06.03.2007 в 21:16)   письмо автору
 
   для: bronenos   (06.03.2007 в 20:23)
 

Разбирацца!
Экран (в нужном месте) может быть
пустым по множеству причин, а телепаты вымерли:)
Используйте алерты для получения информации из скрипта.

   
 
 автор: bronenos   (06.03.2007 в 21:22)   письмо автору
 
   для: RMW   (06.03.2007 в 21:16)
 

использовал
получал responseXML - alert (typeof(next)) = object
var doc = next.[documentElement].getElementsByTagName ('message');
alert (doc.length) = 0

   
 
 автор: RMW   (06.03.2007 в 22:29)   письмо автору
 
   для: bronenos   (06.03.2007 в 21:22)
 

Если есть возможность попробуйте с другим сервером.
Киньте например на народ.

   
 
 автор: bronenos   (06.03.2007 в 22:54)   письмо автору
 
   для: RMW   (06.03.2007 в 22:29)
 

простите, а зах на народ?
в ИЕ надо писать firstChild?

   
 
 автор: RMW   (06.03.2007 в 23:06)   письмо автору
 
   для: bronenos   (06.03.2007 в 22:54)
 

Не ну народ это я так, к слову
я там пример выложил
только для IE
http://springmode.narod.ru/XML.htm

  <?xml version="1.0" encoding="windows-1251" ?> 
  <root>
  <message>один</message> 
  <message>два</message> 
  </root>

И всё работает.

У вас всё вроде правильно за исключ. квадратных скобок,
но это вы наверное специально.

   
 
 автор: bronenos   (07.03.2007 в 07:10)   письмо автору
 
   для: RMW   (06.03.2007 в 23:06)
 

Эти квадратные значат что я пробовал и с этим словом и без него
Однако и не хочет

   
 
 автор: coloboc66   (07.03.2007 в 09:22)   письмо автору
 
   для: bronenos   (07.03.2007 в 07:10)
 

Я делаю так: в разных броузерах экспериментирую с childNodes[?] и алертом, получив нужный результат, скриптом определяю тип броузера и в зависимости от него выбираю нужный вариант.

   
 
 автор: bronenos   (07.03.2007 в 11:48)   письмо автору
 
   для: coloboc66   (07.03.2007 в 09:22)
 

Ну я определяю браузеры в зависимости от того, что они используют - Актив или Request
Вот в ИЕ надо писать
doc[i].childNodes[j].nodeValue
или
doc[i].childNodes[j].firstChild.nodeValue

   
 
 автор: coloboc66   (07.03.2007 в 12:35)   письмо автору
 
   для: bronenos   (07.03.2007 в 11:48)
 

В каком варианте работает, в том и пишите.

   
 
 автор: bronenos   (07.03.2007 в 15:18)   письмо автору
 
   для: coloboc66   (07.03.2007 в 12:35)
 

Не понимаю, никак просто!
Посмотрите, может где ошибка... в Опере работает, ИЕ не хочет!

Вот в таком виде идут сообщения:
<messages>
<message>
<id>4</id>
<nick>bronenos</nick>
<date>2007-03-07</date>
<text>первое</text>
</message>
<message>
<id>5</id>
<nick>bronenos</nick>
<date>2007-03-07</date>
<text>второе</text>
</message>
</messages>


И функция обработки (obj = responseXML)
function messages_parse (obj)
{
    var doc = obj.getElementsByTagName ('message');
    var messages = new Array();
    for (i=0; i<doc.length; i++)
    {
      var message = new Array();
      for (j=0; j<doc[i].childNodes.length; j++)
      {
        if (doc[i].childNodes[j].nodeType != 1)
          continue;
        var name = doc[i].childNodes[j].nodeName;
        message[name] = doc[i].childNodes[j].firstChild.nodeValue;
      }
      messages[i] = message;
    }
    return messages;
}

   
 
 автор: bronenos   (08.03.2007 в 11:09)   письмо автору
 
   для: bronenos   (07.03.2007 в 15:18)
 

Если я загружаю Microsoft.XMLDOM и в нем разбор делаю, то все нормально, а если я делаю разбор полученного responseXML, то не работает так, как хотелось бы...
ИЕ 6 версии

   
 
 автор: bronenos   (08.03.2007 в 13:01)   письмо автору
 
   для: bronenos   (08.03.2007 в 11:09)
 

Допрыгался!
Теперь в ИЕ работает, а в Опере вылетает с ошибкой!
Может, я создаю не так?
function create_parser (xml)
{
  var obj = false;
  try
  {
    obj = new ActiveXObject ('Microsoft.XMLDOM');
  }
  catch (e)
  {
    obj = new document.implementation.createDocument ('', '', null);
  }
  if (obj)
  {
    obj.async = false;
    obj.loadXML (xml);
  }
  return obj;
}

   
 
 автор: bronenos   (09.03.2007 в 23:27)   письмо автору
 
   для: bronenos   (08.03.2007 в 13:01)
 

Все, работает везде
Но появилась еще одна проблема
Он пишет null вместо сообщений содержащих html форматирование текста (у меня bb коды стоят)
как с этим бороться?
я конечно могу на js заменять их попутно но вдруг можно меньшей кровью
получаю по responseXML парсю на Microsoft.XMLDOM

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования