2017-05-30 82 views
4

我正在從版本6.3升級Bing Maps Version 8.0。這裏是我的升級代碼下面被拋出一個錯誤:它執行Bing Maps v8.0 Microsoft.Maps.Location不是Chrome中的構造函數

var Points = [new Microsoft.Maps.Location(0, 0), new Microsoft.Maps.Location(0, 0)] 

上面幾行之後給了我一個錯誤說

"TypeError: Microsoft.Maps.Location is not a constructor"

在谷歌Chrome瀏覽器的上述問題發生。但是在Internet Explorer中同樣正常工作。

任何建議都有幫助。

在此先感謝。

問候, 拉胡爾

+0

在chrome中出現相同的錯誤..有沒有人遇到同樣的問題,並有解決辦法? – meen

回答

2

問題可能是你正在嘗試使用Microsoft.Maps命名空間加載地圖控制腳本之前。 V8地圖腳本異步加載性能,但這意味着如果您嘗試訪問腳本標記後訪問代碼中的名稱空間以加載地圖控件,則名稱空間將不在該處。你需要你的代碼等到地圖腳本加載完畢。您可以通過向地圖腳本標記URL添加回調函數名稱來處理此問題。例如:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta charset="utf-8" /> 
    <script type='text/javascript'> 
    var map; 

    function GetMap() 
    { 
     map = new Microsoft.Maps.Map('#myMap', { 
      credentials: 'YourBingMapsKey' 
     }); 

     //Add your post map load code here. 
    } 
    </script> 

    <script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?callback=GetMap' async defer></script> 
</head> 
<body> 
    <div id="myMap" style=";width:800px;height:600px;"></div> 
</body> 
</html> 

我們還建議在地圖加載代碼之後添加地圖腳本標記。原因是如果頁面刷新,地圖腳本將被緩存,並立即調用回調函數,所以回調函數需要被加載。

+0

感謝您的建議!但它在IE中正常工作/加載。任何原因爲什麼它在Chrome中失敗? – Shyam

+0

瀏覽器加載資源的方式稍有不同,這可能是原因。您可能會不時在IE中看到問題,或許您在按下刷新按鈕時。 – rbrundritt