如果异步加载 gmap 时未指定回调,则不会加载其他必要的谷歌地图脚本

问题描述 投票:0回答:1

这是否记录在某处,我需要指定回调才能定义 google.maps 模块?或者这是一个错误。

以下代码不会加载谷歌地图模块:

<!DOCTYPE html>
<html>
  <head>
    <title>
      Google Maps JavaScript API v3 Example: Asynchronous Map Simple
    </title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="UTF-8">
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript">
      function initialize() {
        var myOptions = {
          zoom: 8,
          center: new google.maps.LatLng(-34.397, 150.644),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        var map = new google.maps.Map(document.getElementById('map_canvas'),
            myOptions);
      }

      function loadScript() {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = 'http://maps.googleapis.com/maps/api/js?v=3.6&key=myKey&sensor=false'   //adding  'callback=something' gets the maps module to load
        document.body.appendChild(script);
      }

      window.onload = loadScript;
    </script>
  </head>
  <body>
    <div id="map_canvas"></div>
  </body>
</html>

编辑——回复答案

为此,您可以注入自己的标签来响应 window.onload 事件或函数调用,但您还需要另外 指示 Maps JavaScript API 引导程序延迟执行您的 应用程序代码,直到 Maps JavaScript API 代码完全加载。 您可以使用回调参数来执行此操作,该参数作为参数 完成加载 API 后执行的函数。

这如何意味着没有回调将不会加载任何 api?它说当代码完全加载时,您可以使用回调参数来执行函数,但它并没有说如果没有回调参数,代码将永远不会加载。

google-maps google-maps-api-3
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.