2011-02-04 1 views
4

Я пытаюсь использовать Bing Maps 7.0 API с Lazy Loading, так как это похоже на поддержку параметра onScriptLoad. Я использовал этот минимальный тестовый случай:Почему Bing Maps 7 AJAX управляет не ленивой загрузкой?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Bing Maps Test</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 
<body> 
    <div id='mapDiv' style="position:absolute; width:600px; height:400px;"></div> 
    <script type="text/javascript"> 

     function initMap() { 
      console.log('Callback called'); 
      var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), {credentials:"<API KEY>"}); 
     } 

     function loadMapControl() 
     { 
      var script = document.createElement("script"); 
      script.setAttribute("src", "http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&onScriptLoad=initMap"); 
      script.setAttribute("type", "text/javascript"); 
      document.documentElement.firstChild.appendChild(script); 
      console.log('Tag appened'); 
     } 
     setTimeout(loadMapControl, 1000); 

    </script> 
</body> 
</html> 

Обратный вызов называется, как и ожидалось, но Firebug бросает мне Microsoft.Maps.Map is not a constructor ошибку. Это даже если я задержу создание карты на 10 секунд после вызова callback через setTimeout.

Простой пример в Bing Docs, однако, работает отлично:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Bing Maps Test</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <script charset="UTF-8" type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script> 
</head> 
<body> 
    <div id='mapDiv' style="position:absolute; width:600px; height:400px;"></div> 
    <script type="text/javascript"> 
     var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), {credentials:",API KEY>"}); 
    </script> 
</body> 
</html> 

ли кто-нибудь удалось добиться API 7.0 для работы с отложенной загрузки?

Спасибо.

ответ

0

FYI, эта проблема окончательно была исправлена ​​в новейшей версии API Карт. Все работает как ожидается с этой новой версией.

+0

Отлично :) Теперь, если бы они могли добавить другие функции обратно, я мог бы, наконец, избавиться от 6.3 в проектах клиентов – wildpeaks

 Смежные вопросы

  • Нет связанных вопросов^_^