2012-04-15 116 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框架來緩解編寫跨瀏覽器事件處理代碼的痛苦。