2016-07-16 13 views
1

Ich habe versucht, Bing Map immer anzuzeigen, wenn ein Benutzer auf ein bestimmtes HTML-Element klickt, aber Microsoft.Maps.Map gibt immer undefined zurück, auch nachdem ich ein timeInterval gesetzt habe, habe ich auch versucht, ein neues Skript mit einzufügen onsscriptload onclick Ereignis. Im Folgenden finden Sie meinen Beispielcode.Karte gibt immer undefined zurück

$(document).ready(function(){ 

    var script = document.createElement("script"); 
     script.type = 'text/javascript'; 
     script.src = 'https://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&onscriptload=getMap'; 

     document.head.appendChild(script); 

}) 


$("#showMap").click(function(){ 
getMap(); 

}) 
function getMap(){ 
console.info(Microsoft.Maps.Map); 
    var time = ""; 
    var map 
    var mapControl = Microsoft.Maps.Map; 
     if(mapControl == undefined){ 
      time = setInterval(function(){ getMap() }, 8000); 
     } 
     else{ 
      map = new Microsoft.Maps.Map(document.getElementById('address1_composite'), {credentials: 'Cred'}); 
      clearInterval(time); 
     }  
} 

Sorry, ich weiß, diese Frage schon hier in diesem Link gefragt wird, Bing map is undefined after loading Javascript file

Wir haben das gleiche Szenario, aber mir funktioniert nicht wie erwartet, obwohl ich die vorgeschlagene Antwort versucht.

+0

Wo haben Sie Ihren Code testen? eine Seite wie jsfiddle, auf localhost, ...? Welche Fehlermeldung wird in der Konsole angezeigt? –

+0

Ich teste es nur über die Konsole, da es mit crm verbunden ist. Es besagt, dass Microsoft.Maps.Map nicht definiert ist. – user3197077

+0

Dann müssen Sie die Netzwerkregisterkarte Ihres Browsers überprüfen. Ich bin mir ziemlich sicher, dass das Laden des Skripts aus irgendeinem Grund blockiert ist. –

Antwort

0

Was Sie tun sollten, anstatt die Karte zu erstellen, wenn auf ein Element geklickt wird, ist das Laden der Karte einmal und dann das Ein-/Ausblenden, wenn die Schaltfläche angeklickt wird. Dies wird die Anzahl der Kartenladungen signifikant reduzieren, was bedeutet, dass weniger Transaktionen generiert werden und somit die Kosten sinken.

Auch statt der Karte Skript auf Nachfrage, wie Sie laden sind, die Steuer Bing Maps V8 verwenden und es laden asynchron: https://msdn.microsoft.com/en-us/library/mt712557.aspx