首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ajax动态加载谷歌地图v3

使用ajax动态加载谷歌地图v3
EN

Stack Overflow用户
提问于 2010-10-13 18:37:34
回答 7查看 98.1K关注 0票数 23

当我尝试用ajax加载谷歌地图v3时,结果是:

代码语言:javascript
运行
复制
<script src="http://maps.gstatic.com/intl/en_us/mapfiles/api-3/2/8a/main.js" type="text/javascript"></script>

在源代码中,我想用javascript编写document.write();

没有iframe,我怎么能做到这一点?

谢谢。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-10-15 14:02:25

这不受支持。请使用支持的方式加载API:

http://code.google.com/apis/maps/documentation/javascript/tutorial.html#Loading_the_Maps_API

票数 23
EN

Stack Overflow用户

发布于 2012-09-26 21:27:07

找到了一个实用的方法。

在这里处理自定义事件(jQuery):http://jsfiddle.net/fZqqW/94/

代码语言:javascript
运行
复制
window.gMapsCallback = function(){
    $(window).trigger('gMapsLoaded');
}

$(document).ready((function(){
    function initialize(){
        var mapOptions = {
            zoom: 8,
            center: new google.maps.LatLng(47.3239, 5.0428),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map_canvas'),mapOptions);
    }
    function loadGoogleMaps(){
        var script_tag = document.createElement('script');
        script_tag.setAttribute("type","text/javascript");
        script_tag.setAttribute("src","http://maps.google.com/maps/api/js?sensor=false&callback=gMapsCallback");
        (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
    }
    $(window).bind('gMapsLoaded', initialize);
    loadGoogleMaps();
})());​

ajax EDIT如果在全局范围内声明loadGoogleMaps函数可能更实用,尤其是在ajax应用程序中工作时。并且布尔检查将防止由于导航而多次加载api。

代码语言:javascript
运行
复制
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?sensor=false&callback=gMapsCallback");
    (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
}

$(document).ready(function(){
    function initialize(){
        var mapOptions = {
            zoom: 8,
            center: new google.maps.LatLng(47.3239, 5.0428),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map_canvas'),mapOptions);
    }
    $(window).bind('gMapsLoaded', initialize);
    window.loadGoogleMaps();
});
票数 32
EN

Stack Overflow用户

发布于 2011-04-05 05:04:26

我是这样做的..。此示例使用jQuery和google map v3.x

代码语言:javascript
运行
复制
$.getScript("http://maps.google.com/maps/api/js?sensor=true&region=nz&async=2&callback=MapApiLoaded", function () {});

function MapApiLoaded() {
   //.... put your map setup code here: new google.maps.Map(...) etc
}
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3922764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档