安卓浏览器没有'在页面重新加载时加载Google Maps API
Android browser doesn't load Google Maps API on page reload
我正在使用以下函数动态加载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.oogleMapsCallback不会触发。它在Chrome和iOS浏览器中运行良好。
这就像是缓存了脚本,然后就不会再重新加载了。我试着在URL中添加一个时间戳参数,但没有帮助。
如何确保回调始终启动?
更新:
经过进一步的测试,清除缓存和重新加载也不起作用。我必须清除所有浏览器数据(通过设置->应用程序->管理应用程序)才能成功重新加载页面。
使用顶级函数作为回调没有什么区别。
重新加载时没有JavaScript错误。
我应该提到的是,我正在使用安卓2.3.4的HTC Evo 4G,我的应用程序是用jQuery Mobile构建的。
我一直在尝试使用Android模拟器(2.3.3和2.3.5版本)重现您的问题。没有2.3.4版本,对不起),但我还没能。每次重新加载页面时回调都运行良好。
这是测试jsfiddle:http://jsfiddle.net/MartinodF/gbAuL/.它只包括测试问题的最小代码,而排除问题则取决于代码库中的其他内容。
你能在手机上试试吗?点击jsfiddle中的"Debug on mobile"(顶部栏中"Run"右侧的按钮),打开它给你的url(类似于http://jsfiddle.net/m/ABC)在Android浏览器中。你应该得到一个弹出窗口,上面写着"called called"。试着重新加载页面,看看它是否有效。
如果没有,那么我可以试着用2.3.4的HTC Sense皮肤设备进行进一步的测试。
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 更改css链接并等待加载新的css
- 如何在Ajax加载新内容时停止JavaScript执行
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- 如何使用输入数据加载新的extjs图表
- JQuery Masonry.Ajax图标和“;加载新项目”;绳子放错地方了
- 通过javascript在同一个打开的选项卡中重新加载新的网页内容
- 当用户到达页面右侧时加载新内容
- 数据表 AJAX 筛选器重新加载数据
- 超链接单击以加载新页面并执行JavaScript
- 单击时加载新的 SVG
- 在RadWindow中加载新页面,然后从加载的窗体中关闭窗口
- ajax在页面刷新之前不会加载新的sql结果
- 谷歌地图API-在从ajax页面加载新数据之前清除标记、多段线
- 使用Ajax加载页面,并在必要时加载新脚本
- 加载新页面时的过渡效果,AJAX
- Ajax没有正确加载新页面
- 正在加载新的Javascript,但正在调用旧的Javascript.MVC
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 我怎么能有一个花哨的盒子一样的弹出体加载,但与cookie不连续加载重新加载