leaflet-dvf标记在IE11中不会呈现

时间:2015-12-16 14:32:22

标签: javascript leaflet markers

我很遗憾地需要一个使用图表标记的传单-dvf应用程序,它也需要在IE 11中运行。它在Chrome和Firefox中运行良好。此处的标记示例在IE 11中也不会呈现:

http://humangeo.github.io/leaflet-dvf/examples/html/markers.html

有解决方法吗?我尝试将meta X-UA-Compatible IE = edge添加到我的应用程序中,但这似乎没有帮助。

2 个答案:

答案 0 :(得分:1)

它在IE中不起作用的事实是因为自定义SVG标记是一个实验性功能(用源代码编写),错误来自

var children = gradient.children;
var childLength = children.length; // Cannot read property length of undefined, line 2739 of the file

所以目前唯一的解决方案是修改自己的源代码。 渐变只是gradient SVG元素。

我想这是因为IE不支持DOM元素上的子属性,而是应该尝试使用childNodes属性。

var children = gradient.childNodes;
var childLength = children.length;

我现在无法测试它,但它可能会成功,或者你可能会绕过这些步骤并找到IE的进一步问题。请注意childNodeschildren不同,因为它返回元素的所有节点,而不仅仅是元素的元素,因此长度会有所不同。

请参阅here

如果您不想通过逐步调试代码来使其在IE上工作(即使我认为这只是一点点努力),请使用像{{3}这样的DOM Shim它将摆脱你面临的问题。

答案 1 :(得分:1)

此处的项目作者之一。

这个问题应该在1.0dev branch中修复(与Leaflet 1.0兼容),但我会在master分支中进行相同的修复并推送它。感谢您指出了这一点!