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

HTML+CSS+JavaScript

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

 

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

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

тема: var.split(" "); не работает в ИЕ?!
 
 автор: amigo63   (27.02.2009 в 14:44)   письмо автору
 
 

Всем доброго времени суток! У меня почему-то ИЕ спотыкается вот на такой строке:

message=request.responseText.split("|::|::|");


"объект не поддерживает свойство"...
Все остальные браузеры работают нормально. Это можно чем-нибудь заменить?

  Ответить  
 
 автор: Lelik   (27.02.2009 в 14:49)   письмо автору
 
   для: amigo63   (27.02.2009 в 14:44)
 


var aaa=eval(request.responseText);//или так eval( '('+request.responseText+')')
message=aaa.split("|::|::|");

  Ответить  
 
 автор: amigo63   (27.02.2009 в 15:25)   письмо автору
 
   для: Lelik   (27.02.2009 в 14:49)
 

Большое спасибо! var aaa=eval(request.responseText); прокатило)!

  Ответить  
 
 автор: amigo63   (27.02.2009 в 16:49)   письмо автору
 
   для: amigo63   (27.02.2009 в 15:25)
 

Временно прокатило (((

  Ответить  
 
 автор: PAT   (27.02.2009 в 15:02)   письмо автору
 
   для: amigo63   (27.02.2009 в 14:44)
 

Надо смотреть, что у вас скрывается под переменной request

  Ответить  
 
 автор: amigo63   (27.02.2009 в 15:21)   письмо автору
 
   для: PAT   (27.02.2009 в 15:02)
 

С аякс-объектом порядок, responceText приходит в корректном виде, я его просматривал

  Ответить  
 
 автор: PAT   (27.02.2009 в 15:40)   письмо автору
 
   для: amigo63   (27.02.2009 в 15:21)
 

А вы всё же добавьте строчку и посмотрите на request.responseText до ошибки:
alert (request.responseText);
message=request.responseText.split("|::|::|");

  Ответить  
 
 автор: amigo63   (27.02.2009 в 15:44)   письмо автору
 
   для: PAT   (27.02.2009 в 15:40)
 

Так и делал :))

  Ответить  
 
 автор: PAT   (27.02.2009 в 15:55)   письмо автору
 
   для: amigo63   (27.02.2009 в 15:44)
 

Ну и что у вас получалось?

Если request.responseText является тем самым ответом сервера, который вам и нужен, и отражается в alert'e хоть какими-то символами - то, значится, он является переменной типа String и, следовательно, следующая строка НЕ МОЖЕТ выдавать ошибки.


Похожая ошибка однажды была у меня, когда я тестировал ajax-скрипт на локальном компьютере и случайно прописал не абсолютный, а относительный адрес php-скрипта, который также находился на локальном диске моего компьютера. Соответственно, в alert'e я увидел не планируемый мною ответ сервера, а код своего php-скрипта, в котором было, разумеется, много двойных и одинарных кавычек безо всяких экранирующих слешей и парсер браузера, естественно, написал то же самое, что и вам.
Может быть, в ответе сервера у вас также есть неэкранированные кавычки?

  Ответить  
 
 автор: amigo63   (27.02.2009 в 16:34)   письмо автору
 
   для: PAT   (27.02.2009 в 15:55)
 

Снова не работает. Не понимаю. document.getElementById('message').innerHTML= request.responseText; выводит 0|::|::|3, далее

        var aaa=eval(request.responseText);
        message=aaa.split("|::|::|");

вторая строка снова вызывает ошибки.

  Ответить  
 
 автор: PAT   (27.02.2009 в 16:41)   письмо автору
 
   для: amigo63   (27.02.2009 в 16:34)
 

Метод eval вообще здесь не нужен - он как корове седло.

Вы лучше расскажите - когда у вас в коде прописан тестовый alert, то ошибку пишет? Или не пишет?

  Ответить  
 
 автор: amigo63   (27.02.2009 в 16:49)   письмо автору
 
   для: PAT   (27.02.2009 в 16:41)
 

alert (request.responseText);
выводит:
0|::|::|3
Ошибка естественно после этого никуда не делась(.

  Ответить  
 
 автор: amigo63   (27.02.2009 в 17:20)   письмо автору
 
   для: PAT   (27.02.2009 в 16:41)
 

var message=request.responseText.split("|::|::|");
вот так заработало... Странно, не думал, что будущему массиву нужно сообщать тип var...

  Ответить  
 
 автор: PAT   (27.02.2009 в 17:58)   письмо автору
 
   для: amigo63   (27.02.2009 в 17:20)
 

ТАКОГО быть НЕ МОЖЕТ.
Что-то вы ещё явно изменили, но то ли не заметили, то ли скромничаете :-)

  Ответить  
Rambler's Top100
вверх

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