Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.07.2008, 19:33
Интересующийся
Отправить личное сообщение для subaru Посмотреть профиль Найти все сообщения от subaru
 
Регистрация: 05.07.2007
Сообщений: 23

передача массива с сервера
задача: отобразить маркеры на GoogleMaps

как решается: используем xajax, который с сервера передает данные:

outputLayer = {

			    "zoom": [0, 17],

			    "places": [   

				       	{"name": "  mail.ru ",

						 "icon": ["chopper_helmet", "chopper_helmet_shadow"],

						 "posn": [55.62609, 38.00091 ],

						 "html": "<table width=\'250\'>		<tr><td>			<img src=\'/upload/user_avatars/noimage_x48_y48_b1

.jpg\'>		</td>		<td align=\"left\">			<strong>calfer</strong></span><br />Kawasaki ZX-6RR 2005<br />

<a href=\"http://motofriends.ru/users/profile/userid/807/\" target=\'_blank\'>смотреть профиль</a>		

</td>		</tr></table>"

				       },



Далее, в JS-коде мы используем переданную переменную outputLayer:


for (var i=0; i < outputLayer.length; i++) 
   {
        var layer = outputLayer[i];
        var markers = [];
            ....
          var marker = createMarker(posn,title,place["html"] ,icon); 
   } 
   ...



Проблема:
не работает в IE6 ( 7 не тестил еще)


Работает в Firefox

Как ругается IE: outputLayer - определение отсутствует.

Определения как такового нет, т.к. это передается с сервера как переменная.

пробовал прописать в js как: var outputLayer = ' ' ;

все равно не работает.

Еще думал загнать данные в <input type="hidden" name="" value="" >

а потом по
var outputLayer = document.getElementById('outputLayer');
	  alert(outputLayer.value);


выводит полученные данные ( outputLayer = {

"zoom": [0, 17],
....
)


и все равно не работает

Вопрос: Как определить переменную, чтобы в нее можно было присвоить код, передаваемый с сервера?

Последний раз редактировалось subaru, 02.07.2008 в 20:14.
Ответить с цитированием
  #2 (permalink)  
Старый 02.07.2008, 19:55
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,225

outputLayer = {


Судя по этому куску кода - у тебя объект.

Вот так по нему не ходят
for (var i=0; i < outputLayer.length; i++)


А ходят так
for(var i in outputLayer) {
   if (!outputLayer.hasOwnProperty(i)) continue
...
}
Ответить с цитированием
  #3 (permalink)  
Старый 02.07.2008, 19:55
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,225

P.S. Если переменная отсутствует - значит, ты ее не завел =)

В XAJAX есть специальный вызов для запуска скриптов appendScript что ли..
Ответить с цитированием
  #4 (permalink)  
Старый 02.07.2008, 19:57
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,225

P.P.S. Может, попробовать затрейсить вызовом debugger ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Индиептор загрузки файлов С СЕРВЕРА! GrishinEV Events/DOM/Window 12 01.12.2011 13:05
Передача параметра Лимонадный Джо Общие вопросы Javascript 8 25.01.2011 22:19
Как защитить файл js от скачивания с сервера? slon Общие вопросы Javascript 2 02.07.2008 01:14
Изменение onClick из Javascript Александр Events/DOM/Window 5 01.05.2008 16:44
передача данных между формами Yurii Общие вопросы Javascript 2 30.04.2008 20:52