不幸的是,我需要一个使用图表标记的 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 元素上的 Children 属性,但您应该尝试使用 childNodes 属性。
var children = gradient.childNodes;
var childLength = children.length;
我现在无法测试它,但它可能会起作用,或者您可能会绕过这些步骤并发现 IE 的进一步问题。请注意,childNodes
与 children
不同,因为它返回元素的所有节点,而不仅仅是其元素,因此长度会有所不同。
参见here .
如果您不想通过一步一步调试代码来使其在 IE 上运行(即使我认为这只是一点点努力),请使用像 this 这样的 DOM Shim它会解决您面临的问题。
关于javascript - leaflet-dvf 标记不会在 IE11 中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34314671/