Это может быть глупый вопрос, но сохраняете ли вы возвращаемое значение инициализации?Конечно, вы не показываете весь свой код, но это не ясно из того, что там есть.Примерно так:
var infowindow3 = initialize();
alert(infowindow3);
Конечно, типичный способ инициализации вызова - это событие load, поэтому вы не сможете получить возвращаемое значение таким способом.Таким образом, вы должны установить (в вашем примере) глобальную переменную, и она установит эту глобальную переменную внутри инициализации (и ничего не будет возвращать).Страница, на которую вы ссылались (в вашем комментарии) Я вижу, что вы звоните на alert(infowindow3);
до того, как infowindow3
будет определен.Вы также можете видеть, что на самой странице появляется всплывающее предупреждение с неопределенным значением, и страница еще не загружена - вы не видите никакой карты и, следовательно, initialize()
еще не запущен.Имейте в виду, что во время загрузки страницы любой скрипт вне функции (или код функции, если вызов функции находится в этом «открытом пространстве») будет выполняться в тот момент, когда браузер читает его.Это предупреждение является примером этого.Вам нужно поместить это предупреждение (или любой код, который использует эту переменную) в функцию, которая не вызывается до тех пор, пока она не определена initialize()
.Примерами этого являются функции, которые вызываются с onclick
.Фактически, initialize
сам является примером этого (он вызывается с onload
).