Javascript 通过jQuery访问googlemaps变量

Javascript 通过jQuery访问googlemaps变量,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,如何像这样加载Google地图: function loadScript() { var script = document.createElement("script"); script.setAttribute("src", "http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAAXN1Nhid00zgr5mrYEM7MhQE7kuAsiuX3WD62vgNgdNYG4wQzhQs7fQD8XzGkuX

如何像这样加载Google地图:

function loadScript() {
    var script = document.createElement("script");
    script.setAttribute("src", "http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAAXN1Nhid00zgr5mrYEM7MhQE7kuAsiuX3WD62vgNgdNYG4wQzhQs7fQD8XzGkuXLIejRfouX3li8xg&async=2&callback=loadMap");
    script.setAttribute("type", "text/javascript");
    document.documentElement.firstChild.appendChild(script);
}
function loadMap(){
    var map = new GMap2(document.getElementById("google_map"));
}

$(document).ready(function(){
  loadMap();
  //How I can access the map variable here ?
});
并通过jQuery访问map变量


我得到一个未定义的错误,因为当我尝试访问map变量时,它还没有定义。

更改
map
变量的范围,比如在
loadMap()函数之外声明它
将
loadMap()
函数修改为

     var map;
     function loadMap(){
            loadScript() ;
            map = new GMap2(document.getElementById("google_map"));
        }

你不能这样
map
在本地声明为
loadMap
,您不能在该函数之外访问它。此外,您必须首先执行
loadScript
。顺便说一句,不要使用
setAttribute
设置
src
type

使用在外部范围(最好不是全局范围)中声明的变量,例如

<script>
    function loadScript() {
        var script = document.createElement("script");
        script.src = "http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAAXN1Nhid00zgr5mrYEM7MhQ
        script.type = "text/javascript";
        document.documentElement.firstChild.appendChild(script);
    }

    loadScript();
</script>
<!-- close script element here to update DOM -->
<script>
    var map;  // declared outside loadMap

    function loadMap(){
        map = new GMap2(document.getElementById("google_map"));
    }

    $(document).ready(function(){
      loadMap();
      // Now map is available here
    });
</script>

函数loadScript(){
var script=document.createElement(“脚本”);
script.src=”http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAAXN1Nhid00zgr5mrYEM7MhQ
script.type=“text/javascript”;
document.documentElement.firstChild.appendChild(脚本);
}
loadScript();
var-map;//在loadMap之外声明
函数loadMap(){
map=newgmap2(document.getElementById(“google_-map”);
}
$(文档).ready(函数(){
loadMap();
//现在这里有地图了
});

对于您的第一行和最后一行,我得到了一个关于undefined loadMap()错误的错误,但是当我注释掉第一行和最后一行时,它工作了perfectly@astropanic:是的,那是因为
documentReady
函数是在自动执行的匿名函数结束后执行的。现在您对全局范围的污染更大了一点,但它可以工作。