【问题标题】:load google maps apis scripts when needed? jquery.getScript()?在需要时加载谷歌地图 API 脚本? jquery.getScript()?
【发布时间】:2011-04-01 16:53:01
【问题描述】:

我在我的网站上使用带有完整地图 API 的谷歌地图。该地图仅在单击特定链接(例如显示地图)后才可见和使用。由于此地图 api 是一个相当大的 js 文件,我只想在需要时加载 api,而不是像我现在那样在页面加载时加载。

现在我的 <head> 中有这个:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAnf9W..." type="text/javascript"></script>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

我正在使用 jQuery,我有一个单独的 script.js 文件,用于存储我的所有 javascript。

我仅在单击以下项目时显示的地图:

$('#googleMap').live('click', function(e) {

是否可以仅在单击此链接时使用 jquery getScript() 加载上述脚本?或者至少加载它“onLoad()”而不是“onDomReady”?

【问题讨论】:

  • 是的,您可以这样做,您能否发布一个简短的地图激活码示例?

标签: javascript jquery api google-maps


【解决方案1】:

首先,您不需要同时包含这两个脚本。你只需要:

<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>

其次,您可以使用google loader(参见“动态加载”部分)在用户请求时启动地图,如下所示:

$("#foo").click(function() {
    google.load("maps", "3", {other_params:'sensor=false', callback: function(){
        alert('maps API loaded!');
        var map; 
        // do stuff with your map
    });
});

【讨论】:

  • 我试过了,但它在控制台中给了我这个错误“Uncaught TypeError: Object # has no method 'load'”。有什么建议可以解决吗??谢谢
  • 那是因为在访问google.load之前需要加载Google API:https://www.google.com/jsapi
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-14
  • 2012-12-11
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
相关资源
最近更新 更多