کد قبلی رو از یه سایت دیگه کپی کردم (یادم رفت منبع رو هم بنویسم)
برای من توی فایرفاکس اون حالتی که گفتید پیش میاد و توی ie 10 درست اجرا شد!
//تعریف متغیر جدید برای کنترل تعداد دفعات اجرای کد
var scrollRunOnce = true;
window.onscroll = function(e) {
//برای اینکه توی همه مرورگرها مقدار اسکرول رو درست بدست بیاره
var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
if ( (window.innerHeight + scrollTop) >= document.body.offsetHeight ) {
//چک کردن برای اینکه مطمئن شیم کد فقط یکبار اجرا میشه
if( scrollRunOnce ) {
scrollRunOnce = false;
alert('this is the end.');
//برای دفعات بعد که اسکرول به انتهای صحفه میرسه
setTimeout(function(){scrollRunOnce=true;},500);
}
}
};