Клуб API Карт

Инициализация карты, Opera

kirill-lpk
14 марта 2011, 14:46

Добрый день всем. У меня возникает следующая проблема.

Инициализирую карту следующим скриптом:

<script type="text/javascript">
        var myYandexMap = "";
        var myPlacemark = null;
        var myPointer = null;
        init = function() {
            myYandexMap = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
            var newGP = new YMaps.GeoPoint(37.64, 55.76);
            myYandexMap.setCenter(newGP, 10);
        };
        YMaps.load(init);
</script>

ФФ отлично показывает карту. Dragonfly в Опере 11.01 однако выдает следующее сообщение:

Uncaught exception: TypeError: Cannot convert 'this.coordSystem' to object

Карта не появляется( В чем моя ошибка?

5 комментариев
Подписаться на комментарии к посту

YMaps.load используется для асинхронной загрузки модулей; на момент YMaps.load документ может быть как готовым, так и нет.

Полагаю, что вместо YMaps.load(init) имелось в виду jQuery(init)

YMaps.jQuery(init), конечно

Спасибо, с вызовом YMaps.jQuery(init) все заработало.

Еще пришлось в подключении API удалить loadByRequire=1.

Подскажите, пожалуйста.
Проблема такая: в FF карта грузится, а в Опере нет.
Вот код странички:

<html>
<head>
<title>Частный секторtitle>
<meta name="robots" content="noindex,nofollow">
 <script type="text/javascript">
 var flagApiFault = 0;
 function apifault(err){
 flagApiFault = 1;
 alert('Ошибка: ' + err);
 }
 script>
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=AKT6_koBAAAADUOoaQIAHT18IMZN2rXgqTVHU53FtXsa8qgAAAAAAAAAAAAcalNQHbAVEVp5HdB_9OpuFj8Riw==&modules=pmap&amp;onerror=apifault" type="text/javascript">
 script>
 <script type="text/javascript">
 alert('typeof_YMaps:'+typeof(YMaps));
 alert('typeof_YMaps.jQuery:'+typeof(YMaps.jQuery));
 alert('flagApiFault:'+flagApiFault);
 YMaps.jQuery(function () {
 map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
 var dolgota = 39.927545;
 var shirota = 43.427122;
 var point_bie = new YMaps.GeoPoint(dolgota,shirota);
 map.setCenter(point_bie, 14, YMaps.MapType.PHYBRID);
 })
 script>
head>
<body topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>
 <div id="YMapsID" style="width:600px; height:400px; ">div>
body>
html>
В FF сообщения: 
typeof_YMaps:object
typeof_YMaps.jQuery:function
flagApiFault:0

В Опере:

typeof_YMaps:object
typeof_YMaps.jQuery:undefined
flagApiFault:0

И в консоли Оперы пишет:

JavaScript - http://www.сайт.ru/страница/
Inline script thread
Uncaught exception: TypeError: 'YMaps.jQuery' is not a function
Error thrown at line 1, column 136 in http://www.сайт.ru/страница/:
    YMaps.jQuery(function () {                map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);                var dolgota = 39.927545;                var shirota = 43.427122;                var point = new YMaps.GeoPoint(dolgota,shirota);                map.setCenter(point, 14, YMaps.MapType.PHYBRID);            })

Пробовала, но не помогает:

- выполнять скрипт (который после загрузки ключа) с задержкой в 3 секунды (думала, может, АПИ не успел загрузиться),

- вместо YMaps.jQuery(function () { использовать window.onload = function () {

- переставлять скрипт (который после загрузки ключа) из в .

Помогите, пожалуйста.


Вдогонку.
Версии Оперы (где карта не грузится):

Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01

Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51

Ошибка одинаковая. Такое впечатление, что неправильно (не полностью?) загружается api. Но ведь flagApiFault=0.

Прошу помощи!