Клуб API Карт

ошибка с картами Яндекс

device177
27 августа 2015, 12:20

Всем добрый день. Ищу вашего совета по непонятной для меня ситуации. Есть страница с 8 картами Яндекс http://stalmira.ru/contacts переделанных мной вчера (2 недели назад всё работало).

И вот такая ошибка в инспекторе кода: Uncaught TypeError: Cannot read property 'getParent' of undefined

api-maps.yandex.ru/2.1.29/release/combine.xml?modules=Q7Q80a0-0*0b1l1a1m1b1…GQHQIQKQLQSzJQUQVQWQXQYQ0Q1Q2&jsonp_prefix=ymaps_ctorymaps2_1_29_loader:52 

Кто знает из-за чего такая ерунда, помогите, пожалуйста.  
7 комментариев
Подписаться на комментарии к посту
Всеволод Шмыров
27 августа 2015, 12:50

Посмотрел внимательно. Дело в том, что у вас на странице переопределен метод indexOf базового объекта array. Если элемент не найден, то возвращается undefined, хотя должен возвращаться -1. Вообще это очень плохая практика переопределять базовые методы. Если нужна поддердка старых ie, то эту проверку и нужно было реализовать. А если уж и переопределять методы базовых сущностей, то нужно следовать установленном интерфейсу. 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

Спасибо большое за оперативный ответ. Но никакие методы я не переопределял. Просто взял код из конструктора карт. Каким образом можно сделать возврат значения -1 ? Заранее спасибо. 

Всеволод Шмыров
27 августа 2015, 14:57

Дело не в конструкторе карт. Дело в коде на странице. Видимо в скрипте colorbox 

https://yadi.sk/i/HAeCrfljih9H9 

В нем заменяется Array.prototype.indexOf 

Array.prototype.indexOf=function(obj,start){for(var i=(start||0);ih;i++){if(this[i]==obj){return i;}}} 

Это может быть решением? 
https://www.drupal.org/node/2055945 

Всеволод Шмыров
27 августа 2015, 15:57

Да

Спасибо!