使用getIntersectionList函数时,IE 9停止工作

时间:2013-08-16 10:43:58

标签: javascript svg

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

1 个答案:

答案 0 :(得分:0)

如果它崩溃了IE中你应该报告给微软的一个错误,你说错误地使用它,因为你应该传入一个元素而不是null作为最后一个参数。在你的情况下,你可能想要这个:

var nodes = svg.getIntersectionList(svgRect, svg);