передача массива с сервера
задача: отобразить маркеры на 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], .... ) и все равно не работает Вопрос: Как определить переменную, чтобы в нее можно было присвоить код, передаваемый с сервера? |
outputLayer = { Судя по этому куску кода - у тебя объект. Вот так по нему не ходят for (var i=0; i < outputLayer.length; i++) А ходят так for(var i in outputLayer) { if (!outputLayer.hasOwnProperty(i)) continue ... } |
P.S. Если переменная отсутствует - значит, ты ее не завел =)
В XAJAX есть специальный вызов для запуска скриптов appendScript что ли.. |
P.P.S. Может, попробовать затрейсить вызовом debugger ?
|
Часовой пояс GMT +3, время: 02:17. |