我将不胜感激有关使该脚本正常工作的一些指导。地图加载正常,但回调设置不正确,因此每次单击按钮时页面都会将 Google 地图 API 脚本附加到文档中。
我正在使用 JQuery 的 $.load 将 HTML 页面(map.html)添加到 DOM 元素(div 容器)中。
$('.button').click(function() {
$('#mapcontainer').load('/map.html');
});
这是 map.html 用来加载地图的内容,我使用的脚本来自这里:https ://stackoverflow.com/a/12602845/1607449
<script>
var gMapsLoaded = false;
window.gMapsCallback = function(){
gMapsLoaded = true;
$(window).trigger('gMapsLoaded');}
window.loadGoogleMaps = function(){
if(gMapsLoaded) return window.gMapsCallback();
var script_tag = document.createElement('script');
script_tag.setAttribute("type","text/javascript");
script_tag.setAttribute("src","http://maps.google.com/maps/api/js?key=KEYGOESHERE&sensor=false&callback=gMapsCallback");
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
}
$(document).ready(function(){
function initialize(){
var mapOptions = {
}
};
map = new google.maps.Map(document.getElementById('map_canvas'),mapOptions);
}
$(window).bind('gMapsLoaded', initialize);
window.loadGoogleMaps();
});
</script>
<div style="height:400px;width:650px;" id="map_canvas"></div>
这是另一种设置回调以动态加载 Google Maps Javascript API 的方法的示例:http: //www.vijayjoshi.org/2010/01/19/how-to-dynamically-load-the-google-maps- javascript-api-on-demand-loading/这是我希望通过修改我当前使用的脚本来完成的(而不是对新脚本进行反向工程)。
谢谢。
编辑:解决了这个问题,在下面的回复中发布了解决方案