如果在异步加载gmaps时未指定回调,则不会加载其他必需的Google地图脚本

pll*_*lee 8 google-maps google-maps-api-3

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

以下代码未加载Google地图模块:

<!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>
Run Code Online (Sandbox Code Playgroud)

编辑 - 回答答案

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

这怎么意味着没有回调不会加载任何api?它表示你可以使用callback参数在代码完全加载时执行一个函数,但它没有说代码在没有回调参数的情况下永远不会加载.