我正在使用此函数动态加载 Google Maps API:
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 错误。
我应该提到我正在使用带有 Android 2.3.4 的 HTC Evo 4G,并且我的应用程序是使用 jQuery Mobile 构建的。