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

クラッシュした場合は、Microsoft に報告する必要がある IE のバグであり、最後の引数として null ではなく要素を渡す必要があるため、誤って使用していると述べています。あなたの場合、おそらくこれが必要です:

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