これは非常に良い質問です。探している関数が次のようなものであると仮定しましょう。
document.elementFromPoint = function(x,y) { return element; };
このあいまいな関数は、実際にはgeckoレイアウトエンジンを使用してFirefox3.0に実装されています。
https://developer.mozilla.org/en/DOM/document.elementFromPoint
ただし、他の場所では機能しません。ただし、この関数は自分で作成できます。
document.elementFromPoint = function(x,y) {
// Scan through every single HTML element
var allElements = document.getElementsByTagName("*");
for( var i = 0, l = allElements.length; i < l; i++ ) {
// If the element contains the coordinate then we found an element:
if( getShape(allElements[i]).containsCoord(x,y) ) {
return allElements[i];
}
}
return document.body;
};
それは非常に遅いでしょう、しかし、それは潜在的にうまくいくかもしれません!HTMLコードを高速化するためにこのようなものを探していた場合は、代わりに別のものを見つけてください...
基本的には、ドキュメント内にあるすべてのHTML要素を調べて、座標を含む要素を見つけようとします。element.offsetTopとelement.offsetWidthを使用して、HTML要素の形状を取得できます。
いつかこんなものを使っていることに気付くかもしれません。これは、ドキュメント全体で何かを普遍的にしたい場合に便利です。どこでも機能するツールチップシステムや、左クリックでコンテキストメニューを起動するシステムのように。getShapeの結果をHTML要素にキャッシュする方法を見つけることが望ましいでしょう...