0

Google Maps JavaScript API V3 サイトから基本的なマップのデモを取得し、「testnav.htm」というページに配置しました。JQM を使用してこのページをダイアログとして開こうとしていますが、ダイアログが正しく表示されません。私が得るのはダイアログヘッダーだけです。私の testnav.htm は次のようになります。

<!DOCTYPE html>
<html>
  <head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <style>
      html, body, #map-canvas {
        margin: 0;
        padding: 0;
        height: 200px;
        width: 400px;
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <script>
        var map;
        function initialize() {
            var mapOptions = {
                zoom: 8,
                center: new google.maps.LatLng(-34.397, 150.644),
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById('map-canvas'),
                mapOptions);
        }
        console.log('here');
        google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>
  <body>
    <div data-role="dialog">
        <div data-role="header" data-theme="d">
            <h1>Map</h1>
        </div>
        <div data-role="content" data-theme="c">
            <div id="map-canvas"></div>          
        </div>

    </div>
  </body>
</html>

そして、私はそれを次のように呼んでいます:

<a href="testnav.htm" data-rel="dialog">View On Map</a>

地図キャンバスが表示されないのはなぜですか?

更新オマールのアドバイスに従って、これは私が現在実行しているコードです....

<!DOCTYPE html>
<html>
  <head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">

  </head>
  <body>
      <div data-role="dialog">
          <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
            <script>
                $(document).on('pageshow', '[data-role=dialog]', function () {;
                    var map;
                    var mapOptions = {
                        zoom: 8,
                        center: new google.maps.LatLng(-34.397, 150.644),
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                    };
                    map = new google.maps.Map(document.getElementById('map-canvas'),
                        mapOptions);
                    console.log('end');
                });

            </script>
        <div data-role="header" data-theme="d">
            <h1>Map</h1>
        </div>
        <div data-role="content" data-theme="c">       
            <div id="map-canvas" ></div>          
        </div>   
    </div>
  </body>

しかし、どこに追加すればよいかわかりませんgoogle.maps.event.addDomListener(window, 'load', initialize);

4

1 に答える 1