Javascript 通过jQuery访问googlemaps变量
如何像这样加载Google地图: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
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
函数是在自动执行的匿名函数结束后执行的。现在您对全局范围的污染更大了一点,但它可以工作。