この投稿で説明されているこの SVGの動作を再現しようとしていますが、JavaScript を HTML ページに入れ、D3.js を使用します。私はこれを試します:
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<script src="http://d3js.org/d3.v3.js"></script>
<script>
var svg = d3.select("body").append("svg")
.attr("width", 300)
.attr("height", 300)
.attr("id","svgBox");
var svgRect = svg.append("rect")
.attr("width", 200)
.attr("height", 200)
.attr("x", 50)
.attr("y", 50)
.attr("id","rect1")
.style("fill", "#AAFFAA")
.style("stroke", "#222222");
var root = document.getElementById("svgBox");
var rpos = root.createSVGRect();
rpos.x = 150;
rpos.y = 150;
rpos.width = rpos.height = 1;
var list = root.getIntersectionList(rpos, null);
console.info(list);
</script>
しかし、うまくいきません。Firefoxで試してみると、エラーは
TypeError: root.getIntersectionList は関数ではありません
また、Chrome ではエラーは発生しませんが、リストの結果が常に空であるため、関数が機能していないようです。
関数を呼び出す方法はありますか、または別の方法を使用してポイントがパス内にあるかどうかを検出する必要がありますか?