如何加载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变量的时候它还没有定义。
答案 0 :(得分:2)
更改map
变量的范围,比如在loadMap()
函数外声明它
将loadMap()
函数修改为,
var map;
function loadMap(){
loadScript() ;
map = new GMap2(document.getElementById("google_map"));
}
答案 1 :(得分:2)
你不能这样。 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>