gpt4 book ai didi

javascript - 在运行时加载 BingMaps API

转载 作者:行者123 更新时间:2023-12-01 07:42:06 24 4
gpt4 key购买 nike

我正在尝试在 JavaScript 文件运行时加载 Bing Maps API。这是我到目前为止所得到的,基于 this .

var bingmap_link = 'https://www.bing.com/api/maps/mapcontrol?callback=loadMapScenario';
$.when(
$.getScript(bingmap_link),
$.Deferred(function( deferred ){
$( deferred.resolve );
})
)
.done(function() {
console.log("done");
load_bing_map();
});

但是我会收到以下错误

TypeError: Microsoft.Maps.NetworkCallbacks.f_logCallbackRequest is not a function

所以我尝试了另一种尝试:

$('head').append('<script type="text/javascript" src="https://www.bing.com/api/maps/mapcontrol?callback=loadMapScenario" async defer></script>');

load_bing_map();

但是我再次运行时出错:

jQuery.Deferred exception: n is null k@https://www.bing.com/api/maps/mapcontrol?callback=loadMapScenario:12:7416

在这两种情况下,load_bing_map() 函数如下所示。

function load_bing_map() {
var map = new Microsoft.Maps.Map('#mymap', {
credentials: 'MyKey'
});
}

代码在$().ready触发器触发后执行。

我错过了什么?

最后我不需要像这样的解决方案

<head>
<script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?callback=loadMapScenario' async defer></script>
</heady>

我只能在运行时执行此操作。

最佳答案

您在 map 脚本 URL 中指定了回调函数,但代码中没有具有该名称的函数。这导致了您看到的错误。此外,您拥有的代码将无法按原样运行。 map 控件异步加载一堆资源。这样,就到达了could中的done函数,只加载了初始的javascript文件,其他资源都没有加载,因此 map API尚不可用。以下代码示例展示了如何延迟加载 map API:https://github.com/Microsoft/BingMapsV8CodeSamples/blob/master/Samples/Map/Lazy%20Loading%20the%20Map.html

您可以在这里尝试一下:http://bingmapsv8samples.azurewebsites.net/#Lazy%20Loading%20the%20Map

关于javascript - 在运行时加载 BingMaps API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45861212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com