Клуб API Карт

IE7 - из яндекс карт вылезает jQuery

thekashey
24 декабря 2009, 15:20
в браузере ИЕ7( или ИЕ8 в режиме ИЕ7 ) из яндекс карт вылазит jQuery и перетирает мой прототип. потом( непонятно когда, но вроде сразу после фактического старта карты ) заползает обратно Вообще последние полчаса странные баги с картой творяться
6 комментариев
Подписаться на комментарии к посту
Дайте пример кода, пожалуйста.
Загрузка по требованию, если что, должна решить это проблему.
именно что она - загрузка по требованию

и при загрузке почемуто из ядра YMaps вызывается моя функция, которая никак не связана с яндексом.

по непонятным причинам моя функция вызывается из YMaps.js :: try{document.documentElement.doScroll("left")}catch(X)

варианта срабатывания два :
1.вызываемая функция при старте висит на таймере
2.она же висит на резайзе документа

только
1.почему у нее $ перегружен jQuery не понятно
2.почему верхний catch не ловит ошибку
Дайте, пожалуйста, код страницы, довольно трудно по описанию понять, в чем там дело.
сейчас блок завернут в try-catch так что ошибки не увидите, но можно раскопать:

http://www.esosedi.ru/onmap/ofis_kompanii_yandeks_/4401/index.html#lat=55758265&lng=37678449&z=18&v=2&mt=2

скипт http://www.esosedi.ru/1261658052-b34266c8b28c3886df3c738bd693eba1.jsf ( уж простите но он сжат )

строка 1172. ставим отладку, перегружаем страницу.
первые( первые три ) раза когда туда будет попадать управление под $ будет jQuery.

Уровень вложености call стека тама жеский, так как инициализация вызывается при подгрузки скриптов

ПС: в случае старта не через яндекс ( mt=1 в урле ) и последующем переключением на яндекс - ошибка не наблюдается
Проблема следующая: Вы вышаете на событие resize обработчик PlaceMapDivOnBody. Во время инициализации jQuery вызывается функция doScroll, которая вызывает событие resize в IE. В течение всей инициализации jQuery объекты window.$ и window.jQuery указывают на jQuery, предыдущие значения этих переменных будут восстановлены только после окончания инициализации jQuery. Мы подумаем, что можно сделать с этой проблемой. Пока можем только порекомендовать Вам проверять, указывает ли в момент ресайза $ на jQuery или на Prototype; так же можно ставить timeout 0 на выполнение PlaceMapDivOnBody при ресайзе.
спасибо, так и сделаем