我有这个SVG代码:
<svg id="svgSurface" width="500" height="500">
<defs>
<marker id="Triangle" viewBox="0 0 20 20" refX="0" refY="0" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto">
<path d="M 0 0 L 20 10 L 0 20 z" fill="red" fill-opacity="1">
</path>
</marker>
</defs>
<line x1="10" y1="10" x2="100" y2="100" class="Line" marker-end="url(#Triangle)"></line>
</svg>
和一些javascript代码:
var svg = document.getElementById("svgSurface");
var svgRect = svg.createSVGRect();
svgRect.x = 0;
svgRect.y = 0;
svgRect.width = 50;
svgRect.height = 50;
var nodes = svg.getIntersectionList(svgRect, null);
alert(nodes.length);
以下是小提琴http://jsfiddle.net/gYaEX/1/
中的一个工作示例如您所见,我尝试获取渲染内容与指定矩形svgRect相交的所有节点。在Chrome中它可以正常工作,但在IE中它总是崩溃,我不明白为什么。
答案 0 :(得分:0)
如果它崩溃了IE中你应该报告给微软的一个错误,你说错误地使用它,因为你应该传入一个元素而不是null作为最后一个参数。在你的情况下,你可能想要这个:
var nodes = svg.getIntersectionList(svgRect, svg);