Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > GoogleMapsAPI. Траблы с глобальными переменными


Автор: DissDoc 3.5.2008, 18:42
Привет всем. Сразу к делу, а потом расскажу проблему. Вот код
Код

var test = 4;

function load() {
    GDownloadUrl("city.xml", function(data) {
        test = 6;
    }))

    alert(test);
}


Теперь проблема - в IE сообщение выводит 6
В Opera, Mozilla - 4 ???  (хотя с мозиллой я вообще молчу, ничего нормально так и не заработало)

Есть другие функции, которая работаю с точностью до наоборот - глобальные переменные нормально отрабатываются только в опере.
Помогите, я уже вообще запутался. Я все документы по-моему прочитал, где только можно найти хоть какую информацию...

Автор: v2v 3.5.2008, 19:09
а где вызывается функция лоад?
и причём тут Google MAP API ??

Автор: DissDoc 3.5.2008, 19:11
Функция load вызывается в body вот так
Код

<body onload="load()">
<div id="map" style="width: 640px; height: 480px" align="center"></div>
</body>

А сам скрипт находится в head.
А google при том, что есть просто свои функции вставлять - багов не замечено...

P.S. сами настройки верны, я сюда выкладыю упращенных код естесственно. Мне не понятна сама логика работы с глобальными переменными именно в данном случае!

Автор: Sannis 3.5.2008, 22:23
Код

window.test = 6;
? smile

Автор: DissDoc 4.5.2008, 22:04
Неа, не срабатывает ((( Все равно 4 возвращает ((

Автор: solenko 5.5.2008, 11:48
GDownloadUrl запускает АСИНХРОННУЮ загрузку файла. Переменной test присвоится test только ПОСЛЕ того, как этот файл загрузится.

Автор: DissDoc 5.5.2008, 21:07
Это методом тыка сообразил. А от чего тогда readyState брать? (кстати на Мозилле почему-то  вообще readyState не срабатывает..)

Автор: solenko 6.5.2008, 01:06
DissDoc, признаться, нет желания копаться в исходниках google maps для того, чтобы понять, можно ли навешивать события на их xmlhttprequst. Штатное поведение вашего скрипта -- реакция на событие завершение загрузки, а не анализ redyState. Так что выбирайте сами -- читать исходники и пытаться навесить свой обработчик (не факт что получится) или согласиться на обработку гугловских событий (сложно представить задачу, когда их не хватает).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)