задача: отобразить маркеры на 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],
....
)
и все равно не работает
Вопрос: Как определить переменную, чтобы в нее можно было присвоить код, передаваемый с сервера?