Hi,
Apologies once again for a lack of a fiddle. Also, in advance, I think there's a better way for me to handle the Javascript, so perhaps the bug I'll describe below could be avoided altogether. But, I thought this might be of some interest/use to somebody out there.
In any event, I'm making an AJAX call using Mootools Core 1.4.4 and More 1.4.0.1 (using Form.Request), and part of what is returned is a JS call to a function which invokes Fx.Scroll. Specifically, the code returned contains this:
UTILS.scrolltotop();
"UTILS" is a class that gets initiated on page load, and so the function "scrolltotop()" is defined before the AJAX call ever gets made. The body of scrolltotop is just this:
var myscroll = new Fx.Scroll(document.body, {
offset: {
x: 0,
y: 0
}
}).toTop();
In all other browsers I've used, this code executes with no errors, and the window scrolls to the top as I want it to. However, in IE7 and 8, every so often, I get an error deep inside Mootools more. It looks like it's bombing in this section of Element.Position:
setOffsetOption: function(element, options){
var parentOffset = {x: 0, y: 0},
offsetParent = element.measure(function(){
}),
parentScroll = offsetParent.getScroll();
The error returned is: 'null' is null or not an object.
I *think* it's specifically choking on "parentScroll = offsetParent.getScroll()", but IE doesn't always return reliable line numbers.
Clearly this is some sort of race condition that was resolved/masked in IE9. If I have a simple page that just makes my Fx.Scroll call, I can't get IE8 to throw an error.
Anyway, I don't know that there's anything to be done, other than for me to re-write my code to invoke the call in a different way (or bail on scrolling prior to IE9).