是否有人会碰巧知道如何直接在网页上的鼠标光标下获取HTML标签?我正在研究一种新型的所见即所得(WYSIWYG),并希望实现一些真正的拖放功能(不能在光标处插入,这在所见即所得中最常见);要做到这一点,我需要知道在鼠标按钮向上事件触发时要在哪里插入菜单项。获取鼠标光标下的HTML标签
想法也是受欢迎的,据我了解这可能是一个复杂的问题。
是否有人会碰巧知道如何直接在网页上的鼠标光标下获取HTML标签?我正在研究一种新型的所见即所得(WYSIWYG),并希望实现一些真正的拖放功能(不能在光标处插入,这在所见即所得中最常见);要做到这一点,我需要知道在鼠标按钮向上事件触发时要在哪里插入菜单项。获取鼠标光标下的HTML标签
想法也是受欢迎的,据我了解这可能是一个复杂的问题。
下面是基于链接@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;
}
其实并没有那么复杂。您必须将事件处理程序绑定到文档本身,然后检查事件被触发的原始目标。参见mightyuhu的一个例子的评论。
最后一个建议:使用其中一个主要的JavaScript框架来缓解编写跨浏览器事件处理代码的痛苦。
看到http://www.permadi.com/tutorial/cssGetElementUnderMouse/index.html – worenga 2012-04-15 20:33:06
请参阅['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