2015-02-11 2 views
1

Привет Я использую листовку areaselect и когда я использую функцию удалить на интернет-проводник я получил следующее сообщение об ошибке:листовка Areaselect удалить на Internet Explorer

SCRIPT438: Object doesn't support property or method 'remove'

File: leaflet-areaselect.js, Line: 45, Column: 9

ли кто-нибудь из вас позволит запустить эту функцию интернет-исследователь? Я пробовал хром и firefox, и все было хорошо.

var areaSelect = L.areaSelect({ 
    width:100, 
    height:150, 
    keepAspectRatio:true 
}).addTo(map); 

areaSelect.remove(); 

Вот TestCase на Plunker: http://plnkr.co/edit/Snj1cB?p=preview

+0

Добавил тестовое сообщение и сообщение об ошибке для вас и может сказать, что оно может быть воспроизведено для меня в версии 11.0.9600.17501 в Internet Explorer 11.0.15 – iH8

+0

Привет, я пробовал IE 11, но это работает, но не в IE 10 к несчастью. –

+0

Очень странно, для меня это не так. Но опять же есть также несогласованность с Firefox, в проблеме Github, которую я опубликовал ниже, мой ответ говорит, что у него проблема с Firefox, но у него есть Ubuntu. У меня нет проблем с Firefox. Должна быть вещь ревизии/обновления – iH8

ответ

1

ли для отладки/рытье и это ошибка. Созданный контейнерный элемент создается здесь: https://github.com/heyman/leaflet-areaselect/blob/master/src/leaflet-areaselect.js#L52 Он создан с использованием L.DomUtil.create, который является не чем иным, как оберткой для createElement: https://github.com/Leaflet/Leaflet/blob/master/src/dom/DomUtil.js#L22 и применяет имя класса.

Созданные элементы в Chrome/Safari (webkit) и Firefox имеют собственный remove() метод, это не соответствует стандарту. IE не делает, следовательно, ошибку. По моей догадке remove - это не что иное, как обертка для создания element.parentNode.removeChild(element); Создатель плагина должен был использовать это, чтобы он совместим с кроссбраузером.

Я рекомендую подать отчет об ошибке: https://github.com/heyman/leaflet-areaselect/issues

EDIT: Существует уже проблема подана, но не так много действий/Followup, отправил комментарий и связанный с этим вопрос: https://github.com/heyman/leaflet-areaselect/issues/10 поэтому он может также воспроизводить это.

+0

Спасибо Было очень полезно, я изменил «this._container.remove()» на «this._container.parentNode.removeChild (this._container)», и он отлично работает в каждом браузере. Функция remove по-прежнему работает на IE 11. –

+0

Как объясняется в комментарии по вашему вопросу, для меня это не так, но это уже не имеет значения, потому что проблема уже решена: https://github.com/heyman/leaflet-areaselect/issues/10#issuecomment -73999141 – iH8

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