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
。もちろん、 が null になるまで を追加してループする必要がoffsetParent
ありますoffsetTop
。offsetParent
実際、プロトタイプのコードは次のとおりです。
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