mediawiki.js contains the lines (In mediaWiki.loader.using):
if ( typeof ready !== 'function' ) { ready(); }
That's why the callback is never called.
On a side note, the global constant undefined is not defined in IE 5.0 and earlier, so you might want to replace
"if ( mediaWiki !== undefined )
with
"if ( window.mediaWiki )
to avoid js errors in old browser.
Surely typeof mediaWiki !== 'undefined' will work?
typeof mediaWiki !== 'undefined'
Yes, that'll work in all browsers I know of, though it's IMHO unnecessarily long and also somewhat slower than what I suggested :)
Our JS is probably thoroughly broken in IE5 anyway, so I'd ignore it for this purpose. IE6 and up is enough of a pain to care about.
We have a bootstrapper whose sole responsibility is to not load jQuery, mediaWiki and any other JS in IE < 6 (other browsers will be added soon as well), so at least we won't get JS errors in IE5.
I fixed this up a bit. As for ignoring old browser - that's exactly what this code is for, old browsers, so it needs to work on them.
Hmm, okay. Clearly I should read more carefully before commenting. :) If anyone's making sure basic functionality works in IE5, that's fine by me (although if no one is, that's fine by me too).
Thanks, but please note that the typo I mentioned in my first comment is still there. To make it more clear the line
if ( typeof ready !== 'function' ) {
from mediawiki.js, function mediaWiki.loader.using should be replaced with
if ( typeof ready === 'function' ) {
Cheers
Sorry, I keep meaning to get this fixed only to get distracted. It's fixed now in r73618.