2016-11-02 5 views
-1

Googleマップを無駄なくページに追加しようとしています。私のコードは独立して動作しますが、実際のWebページに追加するとマップは全く表示されません。あなたが見ることができるようにGoogleマップを使用するとdiv内にapiが表示されない

<div id="map" style="width:100%;height:500px"></div> 
<script> 
    var map; 
    function initMap() { 
    map = new google.maps.Map(document.getElementById('map'), { 
     center: {lat: -34.397, lng: 150.644}, 
     zoom: 8 
    }); 
    } 
</script> 
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBcwtM8EBe7BE1NyPbU5SDYVYoBBtbtpTI&callback=initMap" 
async defer></script> 

は、ページが、この

のように見えるdivがマップをポップアップ表示ではなく。どのように私はこれを表示するだろうか?

+0

それはすべてのエラーをスローした場合、あなたのコンソールログを確認してください。.. – choz

+0

いや、私のために立派に動作 – JCole

+0

エラーなし:https://jsfiddle.net/3xquh1gs/ – putvande

答えて

2

myMap関数が呼び出されたことがありません。あなたは間違ってそれを呼んでいる、それは&ではなく、あるべき

編集

<script async defer src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=myMap"> </script> 

...

function myMap() { 
    ... 
} 

myMap(); 

またはスクリプトにコールバックパラメータを使用し、同様にそれを呼び出すことができますスクリプトパラメータの&amp;詳細については

<div id="map" style="width:500px;height:500px"></div> 

<script> 
    function myMap() { 
     var mapCanvas = document.getElementById("map"); 
     var mapOptions = { 
      center: new google.maps.LatLng(51.508742,-0.120850), 
      zoom: 5 
     }; 
     var map = new google.maps.Map(mapCanvas, mapOptions); 
    } 
</script> 

<script async defer src="http://maps.googleapis.com/maps/api/js?key=AIzaSyBcwtM8EBe7BE1NyPbU5SDYVYoBBtbtpTI&callback=myMap"> </script> 

、にあなたのコードを変更しようと、このfiddleをチェックしてください。

- 私はあなたがそれはあなたのサイトに仕事を得ることができない理由はわかりません

から2を編集します。私はそれをうまくやることができて以来。以下は

Google map on memphis.edu

私はあなたのサイトにコンソール上で実行時に注入したスクリプトです。私はあなたのスクリーンショットから伝えることができますどのような

$('.content--body__wrapper').append('<div id="map" />') 
$('#map').attr('style', 'width:500px; height:500px') 
$('.content--body__wrapper').append(`<script> 
    var map; 
    function initMap() { 
    map = new google.maps.Map(document.getElementById('map'), { 
     center: {lat: -34.397, lng: 150.644}, 
     zoom: 8 
    }); 
    } 
</script>`); 
$('.content--body__wrapper').append(`<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBcwtM8EBe7BE1NyPbU5SDYVYoBBtbtpTI&callback=initMap" async defer></script>`); 

は、あなたのinitMap関数が呼び出されませんです。私はそれがあなたのコンソールにエラーを提供しないので、それはGoogleマップからのコールバックかどうかは分かりません。

次に、別のアプローチを試してみてください。コールバックではなくjsでinitMapに電話してみてください。

<div id="map" style="width:100%;height:500px"></div> 
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBcwtM8EBe7BE1NyPbU5SDYVYoBBtbtpTI"></script> 

<script> 
    $(function() { 
     var map; 
     function initMap() { 
      map = new google.maps.Map(document.getElementById('map'), { 
       center: {lat: -34.397, lng: 150.644}, 
       zoom: 8 
      }); 
     } 
     initMap(); 
    }); 
</script> 
+0

私はスクリプトにコールバックを追加し、私のmap関数を呼び出すが、まだ表示されていません。 – JCole

+0

@JColeスクリプトに 'async defer'を追加できますか?それはあなたのページの残りの前に、あなたのブラウザのキャッシュから最初にロードされ、呼び出しに失敗したかもしれません..またはちょうど最初のアプローチを使用します.. – choz

+0

私は私の新しいコードを反映するために私のコードを編集したが、それは私のdivと関係がありますか? – JCole

関連する問題