【发布时间】:2014-08-23 16:15:03
【问题描述】:
WRT 构建 Firefox 插件。
是否可以通过一些XPCOM或javascript方法获取鼠标下的元素? (请使用非 js-ctypes,因为这需要操作系统特定性)
当用户按下 Ctrl + Shift + M 时,我想检测鼠标下方的内容。
现在,当用户按下此热键时,我正在向文档添加一个 mouseover 侦听器,因此当他移动它时我可以获取鼠标下的元素,但不能获取他移动时鼠标下的元素按下热键组合。
【问题讨论】:
-
我建议在
mousemove事件上设置一个监听器来跟踪鼠标。然后使用鼠标的坐标,找到它下面的元素。这很烦人,但可能。在此处查看更多信息:stackoverflow.com/questions/7790725/… -
elementFromPoint的问题是我必须添加mousemove,并且在用户按下热键后移动鼠标之前,该元素将不可用。我在这个解决方案中基本上使用第二种方法:stackoverflow.com/a/4711224/3791822 -
一直收听
mousemove,将位置存储在某处。然后当按下组合键时,使用最后记录的鼠标位置。 -
哦,是的,这是一个想法,我也有这个想法,但忘了提及,所以投票赞成。持久的
mousemove对性能不太好,尤其是在附加范围内,所以我希望避免这种情况。 -
那么你可能不走运。你确定它对性能有那么大的影响吗?我以前做过这样的事情,没有什么问题。更新数组中 xy 值的简单处理程序不是很费力。这就是它需要做的所有事情。
标签: javascript firefox-addon mouseevent xpcom