2012-04-15 4 views
2

ウェブページのマウスカーソルの下に直接HTMLタグを取得する方法を知っている人はいますか?私は新しいタイプのWYSIWYGに取り組んでおり、真のドラッグ・アンド・ドロップ機能を実装したいと思っています(カーソルに挿入するのではなく、最近ではWYSIWYGに共通しています)。そのためには、mousebutton upイベントが発生したときにメニュー項目を挿入する場所を知る必要があります。マウスカーソルの下にHTMLタグを取得する

私はそれが複雑な問題かもしれないことを理解しているので、アイデアも大歓迎です。

+3

はhttp://www.permadi.com/tutorial/cssGetElementUnderMouse/index.htmlを見ます – worenga

+1

['elementFromPoint'](https://developer.mozilla.org/en/DOM/document.elementFromPoint)を参照してください。 ([Specs](http://dev.w3.org/csswg/cssom-view/#dom-document-elementfrompoint)。) – Phrogz

答えて

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のコメントを参照してください。

最後に1つの提案:主要なJavaScriptフレームワークの1つを使用して、ブラウザ間のイベント処理コードの作成に苦労しないようにします。提案ここ

関連する問題