Решение Yuriy работает хорошо, пока элемент не является дочерним для элемента с позицией: absolute и это прокручивается. (Я искал положение элемента, а не мышь, но я уверен, что вы могли бы изменить это, чтобы работать для этого тоже)
Мое исправление:
function iframe_offset(e){
var x=e.getBoundingClientRect().x
,y=e.getBoundingClientRect().y
,w=e.ownerDocument.defaultView
do{
e = e.offsetParent
if(e == null){
e = w.frameElement
w = w.parent
if(e){
x += e.offsetLeft+e.scrollLeft
y += e.offsetTop+e.scrollTop
}
}
}while(e)
return {x:x,y:y}
}