Bla*_*goh 4 javascript xpcom firefox-addon mouseevent
WRT构建Firefox附加组件.
是否可以通过一些XPCOM或javascript方法获取鼠标下的元素?(非js-ctypes请,因为这需要操作系统特异性)
当用户按下Ctrl+ Shift+ 时,我想检测鼠标下面的内容M.
现在mouseover,当用户按下这个热键时,我正在为文档添加一个监听器,所以当他移动它时我可以在鼠标下面获取该元素,而不是当他按下热键组合时正好在鼠标下面的元素.
nma*_*ier 10
我只是查看源代码获取(或存储并提供)光标位置的代码.我没有找到任何可以使用的东西(来自Javascript,XPCOM或不是).我可能错过了一些东西...... MXR是你的朋友.
但是,如果你想避免mousemove(这通常是一个好主意),你可以只寻找最里面的悬停元素,例如像这样.
function getInnermostHovered() {
var n = document.querySelector(":hover");
var nn;
while (n) {
nn = n;
n = nn.querySelector(":hover");
}
return nn;
}
Run Code Online (Sandbox Code Playgroud)
(小提琴演示原理)
虽然这是我认为的黑客攻击,但它似乎在大多数情况下都能正常工作,但如果元素通过禁用鼠标事件将会失败pointer-events.可能还有其他我没想过的问题......
当然,当文档没有悬停元素时(例如鼠标实际上不在文档中),这可以不返回任何内容.
| 归档时间: |
|
| 查看次数: |
4101 次 |
| 最近记录: |