Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法动态加载google map javascript_Javascript_Jquery_Google Maps - Fatal编程技术网

无法动态加载google map javascript

无法动态加载google map javascript,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,下面的内容告诉我GMap2没有定义。但是使用GMap2的代码在回调中 $(function() { $('#sample').click(function() { $.getScript("http://maps.google.com/maps?file=api&v=2&sensor=true&key=API_KEY_HERE", function() { va

下面的内容告诉我GMap2没有定义。但是使用GMap2的代码在回调中

        $(function() {
        $('#sample').click(function() {
            $.getScript("http://maps.google.com/maps?file=api&v=2&sensor=true&key=API_KEY_HERE", function() {
                var map = new GMap2(document.getElementById("mapTest"));
                map.setCenter(new GLatLng(18, -77.4), 13);
                map.setUIToDefault();

            });
        });
    });

<a id="sample">Click Me</a>
<div id="mapTest" style="width: 200px; height: 100px;"></div>
$(函数(){
$(“#示例”)。单击(函数(){
$.getScript(“http://maps.google.com/maps?file=api&;v=2&;sensor=true&;key=API_key_HERE”,函数(){
VarMap=newGMAP2(document.getElementById(“mapTest”);
赛特中心地图(新格拉特林(18,-77.4),13);
map.setUIToDefault();
});
});
});
点击我

您是否检查了浏览器是否兼容?我在所有的GMAP应用程序中都这么做,尽管它很少失败

if (GBrowserIsCompatible()) 

您可以采用两种方式:

1。继续使用
$。getScript

似乎您需要一个
async=2
参数以及一个不同的回调结构才能使其工作。我的答案与您的代码相适应


函数映射_回调(){
VarMap=newGMAP2(document.getElementById(“mapTest”);
赛特中心地图(新格拉特林(18,-77.4),13);
map.setUIToDefault();
}
$(函数(){
$(“#示例”)。单击(函数(){
$.getScript(“http://maps.google.com/maps?file=api&;v=2&;sensor=true&;callback=map_callback&;async=2&;key=API_key_HERE”);
}
}
2.使用谷歌AJAX加载器

既然你已经在使用谷歌图书馆,为什么不帮助你呢

<script type="text/javascript" src="http://www.google.com/jsapi?key=ABCDEFG"></script>
<script type="text/javascript">
   google.load("jquery", "1.3.2");

   google.setOnLoadCallback(function(){
       $('#sample').click(function(){
          google.load("maps", "2", {"callback" : function(){
            var map = new GMap2(document.getElementById("mapTest"));
            map.setCenter(new GLatLng(18, -77.4), 13);
            map.setUIToDefault();
          } });
       });
   }, true); // Passing true, though undocumented, is supposed to work like jQuery DOM ready
</script>

load(“jquery”,“1.3.2”);
setOnLoadCallback(函数(){
$(“#示例”)。单击(函数(){
load(“maps”,“2”,“callback”:function(){
VarMap=newGMAP2(document.getElementById(“mapTest”);
赛特中心地图(新格拉特林(18,-77.4),13);
map.setUIToDefault();
} });
});
},true);//传递true虽然没有文档记录,但应该像jQuery DOM ready一样工作

它根本找不到脚本。它还告诉我函数不可用。基于两个函数都出现错误,听起来像是脚本没有加载错误,但看起来Doug帮了你。祝你的应用程序好运……是的,OP提供了API密钥。我已将其从问题中删除,并用h API_KEY_here谢谢,我尝试了这两种方法,并决定坚持使用jquery,因为google ajax loader是一个额外的16kb。@Shawn很高兴它能为您工作!正如您所知,它是16kb未压缩的,但它是从google服务器压缩发送的,所以它只有5.8k
<script type="text/javascript" src="http://www.google.com/jsapi?key=ABCDEFG"></script>
<script type="text/javascript">
   google.load("jquery", "1.3.2");

   google.setOnLoadCallback(function(){
       $('#sample').click(function(){
          google.load("maps", "2", {"callback" : function(){
            var map = new GMap2(document.getElementById("mapTest"));
            map.setCenter(new GLatLng(18, -77.4), 13);
            map.setUIToDefault();
          } });
       });
   }, true); // Passing true, though undocumented, is supposed to work like jQuery DOM ready
</script>