вслед за Райаном Бейтсом Screencast # 114 Я пытаюсь создать бесконечные страницы, используя прототип. В отличие от витрины Райана, мой URL, вызываемый по запросу AJAX, обрабатывается динамически, потому что я не всегда вызываю один и тот же URL, когда пользователь достигает конца моей страницы.
Так что мой JS, работающий в фоновом режиме, выглядит так и использует document.location.href вместо фиксированного URL:
var currentPage = 1;
function checkScroll() {
if (nearBottomOfPage()) {
currentPage++;
new Ajax.Request(document.location.href + '?page=' + currentPage, {asynchronous:true, evalScripts:true, method:'get'});
}
else {
setTimeout("checkScroll()", 250);
}
}
function nearBottomOfPage() {
return scrollDistanceFromBottom() < 10;
}
function scrollDistanceFromBottom(argument) {
return pageHeight() - (window.pageYOffset + self.innerHeight);
}
function pageHeight() {
return Math.max(document.body.scrollHeight, document.body.offsetHeight);
}
document.observe('dom:loaded', checkScroll);
Вопрос в том, что код работает в Safari, но не работает в FF 3.6. Кажется, что FF рассчитывает scrollHeight или offsetHeight по-разному. Как я могу предотвратить это?
Спасибо заранее.
Jason