0

我有这个 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 中它总是崩溃,我不明白为什么。

4

1 回答 1

0

如果它崩溃,那是 IE 中的一个错误,您应该向 Microsoft 报告,因为您应该传入一个元素而不是 null 作为最后一个参数,因此您使用它不正确。在你的情况下,你可能想要这个:

var nodes = svg.getIntersectionList(svgRect, svg);
于 2013-08-16T12:39:20.417 回答