Клуб API Карт

Prototype и Яндекс Карты.

meekman74
7 июля 2009, 11:32

Добрый день!


Использую новую версию Яндекс.Карты 1.1 и библиотеку прототип версии 1.6.0.3(или даже 1.6.1b3RC).

Файрфокс ругается на:

R is undefined
[Break on this error] (function(G){(f

unction(){var b=this,W,l=...K(G.WayPoint,G.GeocoderResult)})(YMaps);

Хром ругается на:

Uncaught TypeError: Cannot call method 'split' of undefined

YMaps.js:11


Возможно ли использование этих двух продуктов вместе?


11 комментариев
Подписаться на комментарии к посту
Использовать их вместе возможно.

Дайте ссылку на страницу, пожалуйста.
Подобных ошибок я не обнаружил.

Проблема осталась? Если да, то скажите, пожалуйста, какие действия нужно произвести, чтобы повторить ошибку.
Да, ошибка осталась.
Версии программ:
Firefox - 3.0.11(Windows и Linux версии)
Chrome - 2.0.172.33.

При каких действиях возникает ошибка?
1. Нажать на кнопку "Добавить" в левом верхнем углу.
2. Нажать на любое место карты.

Без подключения прототипа в месте клика появится новый маркер, с подключенным прототипом - ошибка и остановка выполнения сценариев.

Я смог добавить несколько меток, ошибок не возникло.

Возможно, что у Вас закэшировался скрипт. Попробуйте очистить кэш и попробовать снова.
Во всех браузерах нашей внутриофисной сети ошибки появляются.
В: IE(windows), Chrome(windows), Firefox(Windows), Firefox(Linux), Konquerror(Linux).

Попробуйте открыть в другом браузере.
В каком браузере(название, версия) Вы пробовали добавлять маркеры?



На сайте был прописан неверный путь к прототипу, а значит он не подшружался и поэтому у Вас получалось добавлять маркеры.

Смотрите сейчас - прототип подключается и добавление не работает.
Это виновата не библиотека prototype.

Обратите внимание на класс CMarkers. Вот его фрагмент:
for(i in m){
    this.add(YMaps.GeoPoint.fromString(m[i][0]), m[i][1], m[i][2], m[i][3]);
}

Вы хотели перебрать все элементы массива, а стали перебирать все поля и методы массива. Массив тоже ведь является классом, поэтому получалось не то, что Вы хотели (можете посмотреть в отладчике и сами убедитесь).

Нужно было писать так:
for(var i = 0; i < m.length; i++){
    this.add(YMaps.GeoPoint.fromString(m[i][0]), m[i][1], m[i][2], m[i][3]);
}

Если возникнут еще вопросы - пишите.
rodlex,
спасибо!
Prototype отлично работает с Яндекс.Карты! =)