我在HTML文档中有一个点的坐标(X,Y)。如何确定这些坐标处的DOM节点?

一些想法:

  • 是否有我错过的DOM HitTest 函数,该函数需要一个点(X,Y)并在那里返回DOM元素?
  • 有没有一种有效的方法来遍历DOM元素树以找到包含元素?由于元素的绝对位置,这似乎很棘手。
  • 有没有一种方法可以模拟给定(X,Y)位置的事件,以便浏览器最终创建一个具有指向该元素的指针的事件对象?

  • (背景:我将Qt的QWebView嵌入 native 应用程序中。我试图根据鼠标悬停的DOM节点来更改Qt小部件提供的上下文菜单,但是Qt 4.5无法对DOM元素进行测试,尽管该功能将在4.6中提供。所以我希望可以将坐标转换为Javascript,然后使用DOM API进行匹配测试。)

    谢谢!

    最佳答案

    只要您的用户没有使用旧版本的Safari,Chrome或Opera,您就很幸运:使用document.elementFromPoint(x, y)(MSDN refMozilla refQuirksMode article):



    如果您需要支持较旧的浏览器,那么除了您建议的内容外,我不会想到许多其他选择(遍历整个DOM,查看元素的位置和大小,并查看其中是否包含您的(x,y))。

    我认为事件模拟不会起作用,但这是一个有趣的想法。我对事件调度的理解是,您为事件指定目标,而这正是您首先要查找的目标。

    关于javascript - 如何找到位于给定(X,Y)位置的DOM节点? ( HitTest ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1569775/

    10-11 23:17
    查看更多