Leaflet Areaselect 在 Internet Explorer 上删除

Leaflet Areaselect remove on Internet Explorer

您好,我正在使用 leaflet areaselect,当我在 Internet Explorer 上使用删除功能时,出现以下错误:

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

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

有没有人在 Internet Explorer 上启用 运行 这个功能?我试过 chrome 和 firefox,没问题。

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

areaSelect.remove();

这是 Plunker 上的一个测试用例:http://plnkr.co/edit/Snj1cB?p=preview

做了一些 debugging/digging,这是错误。有问题的容器元素在此处创建:https://github.com/heyman/leaflet-areaselect/blob/master/src/leaflet-areaselect.js#L52 It's created by using L.DomUtil.create which is nothing more than a wrapper for 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

编辑:已经提交了一个问题,但不多 action/followup,发表评论并链接到这个问题:https://github.com/heyman/leaflet-areaselect/issues/10 所以他也可以重现这个。