繁体   English   中英

Map始终返回undefined

[英]Map always returns undefined

每当用户点击某个HTML元素时,我一直在尝试显示Bing Map,但是即使在设置了timeInterval之后,Microsoft.Maps.Map也始终返回undefined,我还尝试使用onscriptload onclick事件插入新脚本。 以下是我的示例代码。

$(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);
        }     
}

抱歉,我知道此链接已经提到了这个问题, 加载Javascript文件后Bing地图未定义

虽然我已经尝试了建议的答案,但是我的情况相同但是我的工作没有按预期工作。

单击元素时应该执行的操作而不是创建地图,只需加载地图一次,然后在单击按钮时隐藏/显示地图。 这将显着减少地图加载的数量,这意味着生成的事务更少,从而降低了成本。

此外,不是像您一样按需加载地图脚本,而是使用Bing Maps V8控件并异步加载它: https//msdn.microsoft.com/en-us/library/mt712557.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM