获取当前在鼠标下的元素,而不使用鼠标事件
Get element currently under mouse without using mouse events
WRT构建Firefox插件
是否有可能通过一些XPCOM或javascript方法获得鼠标下的元素?(请非js-ctypes,因为这需要操作系统的特殊性)
当用户按Ctrl + Shift + M时,我想检测鼠标下的内容。
现在,当用户按下这个热键时,我在文档中添加了一个mouseover
监听器,所以当他移动鼠标时,我可以得到鼠标下面的元素,但不是当他按下热键组合时正好在鼠标下面的元素。
我只是查看了获取(或存储和提供)光标位置的源代码。我没有找到任何可以使用的东西(来自Javascript或XPCOM)。我可能错过了什么……MXR是你的朋友。
然而,如果你想避免mousemove
(这通常是一个好主意),你可以只寻找最里面的悬停元素,例如:
function getInnermostHovered() {
var n = document.querySelector(":hover");
var nn;
while (n) {
nn = n;
n = nn.querySelector(":hover");
}
return nn;
}
(小提琴演示原理)
虽然这是我认为一个黑客,它似乎工作足够好大多数时间,但将失败,如果元素有鼠标事件通过pointer-events
禁用。可能还有其他我没有想到的问题……
当然,当文档中没有悬停元素时(例如,鼠标实际上不在文档中),这可能什么也不返回。
相关文章:
- JsFiddle上的鼠标事件不起作用
- node-webkit-从父窗口捕获iframe鼠标事件
- 鼠标事件在OpenLaszlo应用程序中不起作用
- 为画布绘图添加鼠标事件
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- KineticJS鼠标事件问题
- GWT-允许鼠标事件在两个叠加画布之间传播
- 为什么不是't html<对象>元素响应鼠标事件
- 如何恢复Kinetic.js鼠标事件
- 鼠标事件's在CtrlKey不起作用的情况下单击
- 鼠标事件,我的代码出了什么问题
- 撤消javascript中的所有鼠标事件处理程序
- JQuery facebook订阅插件鼠标事件
- Javascript/jQuery-鼠标事件没有在html上触发,添加了动态
- React模板鼠标事件在容器's鼠标事件
- 使用两个重叠的画布,我可以将鼠标事件传递到底部的画布吗
- 谷歌地图 api v3 搜索多边形没有鼠标事件
- CSS 溢出边界半径鼠标事件
- 将触摸事件转换为鼠标事件仅每秒有效一次
- D3.js鼠标事件不起作用