有谁知道如何使用 JavaScript 在 IE6 页面中检索 iframe 顶部位置?
以下代码适用于 IE7:window.frames(0).screenTop
但是 IE6 中的相同代码检索到错误的值(太高了)。
有任何想法吗?
有谁知道如何使用 JavaScript 在 IE6 页面中检索 iframe 顶部位置?
以下代码适用于 IE7:window.frames(0).screenTop
但是 IE6 中的相同代码检索到错误的值(太高了)。
有任何想法吗?
有谁知道如何使用 JavaScript 在 IE6 页面中检索 iframe 顶部位置?
与任何其他元素相同的方式,使用 offsetTop(并从任何 offsetParent 祖先添加 offsetTop)。它是一个 <iframe> 元素并不重要。
var el= document.getElementsByTagName('iframe')[0];
var top= 0;
while (el && el.nodeType==1 && el!==document.documentElement) {
top+= el.offsetTop;
el= el.offsetParent;
}
以下代码适用于 IE7:window.frames(0).screenTop
我怀疑这行得通。screenTop 是错误的,它是屏幕上的坐标不在页面上。无论如何,它必须是方括号。
您可能希望使用offsetTop
. 当然,您必须循环,添加offsetParent
'offsetTop
直到offsetParent
为空。
jQuery和Prototype 都可以为你做这件事。
事实上,这是 Prototype 的代码:
positionedOffset: function(element) {
var valueT = 0, valueL = 0;
do {
valueT += element.offsetTop || 0;
valueL += element.offsetLeft || 0;
element = element.offsetParent;
if (element) {
if (element.tagName.toUpperCase() == 'BODY') break;
var p = Element.getStyle(element, 'position');
if (p !== 'static') break;
}
} while (element);
return Element._returnOffset(valueL, valueT);
}
//Element.getStyle returns the style or its default if not defined.
//Element._returnOffset returns the left and top as a single object