Firefox 是否支持 SVG getIntersectionList?文档和测试不同意



我正在为javascript中的大量SVG路径寻找一个简单的多边形点测试。getIntersectionList似乎是一个正确的功能,但在过去10年里,我看到的每一个地方都有讨论,说它在mozilla/firefox中不受支持,包括mozilla.org文档:

https://developer.mozilla.org/en-US/docs/Web/SVG/SVG_1.1_Support_in_Firefox

然而,我发现示例代码似乎工作正常,并支持getIntersectionList:

http://dahlström.net/svg/interactivey/intersection/sandbox_hover.svg

var list = root.getIntersectionList(rpos, null);
// Works

相比之下,另一个失败并表示不支持相同功能的例子是:

https://codepen.io/team/articulate/pen/HIFyi

input.value = svg.getIntersectionList(irect, null).length
// Uncaught TypeError: svg.getIntersectionList is not a function

我想让它在所有现代浏览器中都能工作——所以奇怪的是,mozilla似乎说它不受支持,而实际上它有时确实能工作。有没有来自mozilla的更新文档表明它已经被添加?

否。正如Robert Longson所评论的,第一个svg示例也失败了getIntersectionListFirefox不支持它。

第一个示例失败:http://dahlström.net/svg/interactivey/intersection/sandbox_hover.svg

我很困惑,因为演示应用程序报告了鼠标经过的正确路径,但这是因为处理了mousemove事件,而不是因为getIntersectionList。

我只读过关于getIntersectionList的代码。。。并且未使用调试器。

仍然有点奇怪,因为mousemove事件在SVG hitest中有一个非常好的点,但我不能用坐标访问同一个测试。看起来我需要对SVG多边形进行自己的碰撞测试。

最新更新