2017-05-30 78 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