2012-04-15 48 views
2

是否有人会碰巧知道如何直接在网页上的鼠标光标下获取HTML标签?我正在研究一种新型的所见即所得(WYSIWYG),并希望实现一些真正的拖放功能(不能在光标处插入,这在所见即所得中最常见);要做到这一点,我需要知道在鼠标按钮向上事件触发时要在哪里插入菜单项。获取鼠标光标下的HTML标签

想法也是受欢迎的,据我了解这可能是一个复杂的问题。

+3

看到http://www.permadi.com/tutorial/cssGetElementUnderMouse/index.html – worenga 2012-04-15 20:33:06

+1

请参阅['elementFromPoint'](https://developer.mozilla.org/en/DOM/document.elementFromPoint)。 ([规格](http://dev.w3.org/csswg/cssom-view/#dom-document-elementfrompoint)。) – Phrogz 2012-04-15 20:55:28

回答

3

下面是基于链接@mightyuhu提出一个例子:

document.onmouseover = function(e){ 
    targ = getTarget(e); 
    targ.style.border = '1px solid #F00'; 
    document.getElementById('currentElement').innerHTML = targ.tagName; 
}; 

document.onmouseout = function(e){ 
    getTarget(e).style.border = 'none'; 
}; 


function getTarget(e){ 
    if (e.target) return e.target; 
    else if (e.srcElement) return e.srcElement; 
} 

还有这个:http://jsfiddle.net/5NFeX/3/

2

其实并没有那么复杂。您必须将事件处理程序绑定到文档本身,然后检查事件被触发的原始​​目标。参见mightyuhu的一个例子的评论。

最后一个建议:使用其中一个主要的JavaScript框架来缓解编写跨浏览器事件处理代码的痛苦。