Похоже, что свойство getPageInfo (). ScrollTop и getPageInfo (). OffsetTop вместе предоставят вам позицию прокрутки верхнего окна.
Вот последний код, который я использовал для прокрутки элементов в поле зрения с учетом абсолютных / глобальных координат x и y.
function scrollElementIntoViewFB(applicationID, elementTop, elementBottom) {
var pageInfo = FB.Canvas.getPageInfo();
// fallback if running local
if (pageInfo.clientHeight==0) {
scrollElementIntoView(applicationID, elementTop, elementBottom);
return;
}
var scrollPosition = pageInfo.scrollTop;
var viewportHeight = pageInfo.clientHeight;
var flashOffsetTop = pageInfo.offsetTop;
var elementAbsoluteTop = elementTop + flashOffsetTop;
var elementAbsoluteBottom = elementBottom + flashOffsetTop;
var visibleBottomPosition = viewportHeight + scrollPosition;
if (scrollPosition>elementAbsoluteTop) {
FB.Canvas.scrollTo(0, elementAbsoluteTop);
}
else if (visibleBottomPosition<elementAbsoluteBottom) {
FB.Canvas.scrollTo(0, elementAbsoluteBottom-viewportHeight);
}
return true;
}
И если по какой-то причине вы хотите версию только для HTML (которая не будет работать, если в фрейме внутри другого домена, например Facebook, но будет работать на вашем собственном сайте):
function scrollElementIntoView(applicationID, elementTop, elementBottom) {
var scrollPosition = f_scrollTop();
var viewportHeight = f_clientHeight();
var flashElement = swfobject.getObjectById(applicationID);
var flashOffsetTop = flashElement.offsetTop; // not sure if this is cross browser
var elementAbsoluteTop = elementTop + flashOffsetTop;
var elementAbsoluteBottom = elementBottom + flashOffsetTop;
var visibleBottomPosition = viewportHeight + scrollPosition;
if (scrollPosition>elementAbsoluteTop) {
window.scrollTo(0, elementAbsoluteTop);
}
else if (visibleBottomPosition<elementAbsoluteBottom) {
window.scrollTo(0, elementAbsoluteBottom-viewportHeight);
}
return true;
}
Поиск в Интернете других функций по их именам, и вы найдете остальную часть кода.