Я загружаю API Карт Google динамически, используя эту функцию:
App.prototype.loadScript = function(src) {
$(document.createElement("script")).attr({
type: "text/javascript",
src: src
}).appendTo("body");
};
Я передаю этот URL в качестве аргумента:
"//maps.googleapis.com/maps/api/js?v=3.8&sensor=false&language=" + locale + "&callback=window.app.googleMapsCallback"
Работает нормально при первой загрузке страницы и срабатывает обратный вызов. Однако, когда я перезагружаю страницу на Android, window.app.googleMapsCallback вызывает , а не . Он отлично работает в Chrome и в браузере iOS.
Это похоже на то, что скрипт кэшируется и просто не перезагружается снова. Я попытался добавить параметр метки времени в URL, но это не помогло.
Как я могу убедиться, что обратный вызов всегда срабатывает?
ОБНОВЛЕНИЕ:
При дальнейшем тестировании очистка кеша и перезагрузка тоже не работают. Я должен очистить все данные браузера (через Настройки -> Приложения -> Управление приложениями), чтобы перезагрузить страницу успешно.
Использование функции верхнего уровня в качестве обратного вызова не имеет значения.
Нет ошибок JavaScript при перезагрузке.
Следует отметить, что я использую HTC Evo 4G с Android 2.3.4, а мое приложение построено на jQuery Mobile.