是否有人會碰巧知道如何直接在網頁上的鼠標光標下獲取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