leaflet-dvf 标记不会在 IE11 中呈现
leaflet-dvf markers won't render in IE11
不幸的是,我需要一个使用图表标记的 leaflet-dvf 应用程序,它也需要在 IE 11 中工作。它在 Chrome 和 Firefox 中工作正常。此处的标记示例也不会在 IE 11 中呈现:
http://humangeo.github.io/leaflet-dvf/examples/html/markers.html
有解决办法吗?我尝试将元 X-UA-Compatible IE=edge 添加到我的应用程序,但这似乎没有帮助。
它在 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 元素上的子节点 属性,但是您应该尝试使用子节点 属性.
var children = gradient.childNodes;
var childLength = children.length;
我现在无法对其进行测试,但它可能会起作用,或者您可能会绕过这些步骤并发现 IE 的其他问题。请注意 childNodes
与 children
不同,因为它 returns 一个元素的所有节点,而不仅仅是它的元素,所以长度会有所不同。
参见 here。
如果您不想通过逐步调试代码使其在 IE 上运行而弄脏自己的手(即使我认为这只是一点点努力),请使用 DOM像 this 这样的垫片,它会解决你面临的问题。
这里是项目作者之一。
这个问题应该在 1.0dev branch 中修复(与 Leaflet 1.0 兼容),但我会在 master 分支中进行相同的修复并将其上推。感谢您指出了这一点!
不幸的是,我需要一个使用图表标记的 leaflet-dvf 应用程序,它也需要在 IE 11 中工作。它在 Chrome 和 Firefox 中工作正常。此处的标记示例也不会在 IE 11 中呈现:
http://humangeo.github.io/leaflet-dvf/examples/html/markers.html
有解决办法吗?我尝试将元 X-UA-Compatible IE=edge 添加到我的应用程序,但这似乎没有帮助。
它在 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 元素上的子节点 属性,但是您应该尝试使用子节点 属性.
var children = gradient.childNodes;
var childLength = children.length;
我现在无法对其进行测试,但它可能会起作用,或者您可能会绕过这些步骤并发现 IE 的其他问题。请注意 childNodes
与 children
不同,因为它 returns 一个元素的所有节点,而不仅仅是它的元素,所以长度会有所不同。
参见 here。
如果您不想通过逐步调试代码使其在 IE 上运行而弄脏自己的手(即使我认为这只是一点点努力),请使用 DOM像 this 这样的垫片,它会解决你面临的问题。
这里是项目作者之一。
这个问题应该在 1.0dev branch 中修复(与 Leaflet 1.0 兼容),但我会在 master 分支中进行相同的修复并将其上推。感谢您指出了这一点!