2009-02-09 3 views
1

Кто-нибудь знает, как получить верхнюю позицию iframe на странице для IE6 с использованием JavaScript?Как получить верхнюю позицию iframe в IE6 с помощью JavaScript?

Следующий код работает для IE7: window.frames (0) .screenTop

, но тот же самый код в IE6 получает неверное значение (слишком высокий).

Любые идеи?

+0

Это похоже на обману этого вопроса: Dyanamically reterive Html element (X,Y) position with JavaScript

ответ

0

Возможно, вы захотите использовать offsetTop. Конечно, вам придется зацикливаться, добавив offsetParentoffsetTop до тех пор, пока offsetParent не станет пустым.

Оба jQuery и 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 
1

Кто-нибудь знает, как извлечь IFrame верхнюю позицию внутри страницы для IE6 с помощью JavaScript?

Так же, как и для любого другого элемента, используя offsetTop (и сложение offsetTop от любых смещенных предков Parent). Не имеет значения, что это элемент 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 - неправильная вещь, это экранные координаты, а не на странице. И в любом случае это должны быть квадратные скобки.