Работает это благодаря коллекции
document.all.
webkit и
Presto поддерживали её всегда. В какой-то момент эта коллекция не поддерживалась в
Gecko, и по какой причине разработчики вернули поддержку этого жуткого наследства от
MS — не понимаю.
Вот что говорится про неё на
MDN:
Provides access to all elements with an id. This is a legacy non-standard interface, you should use the Document.getElementById() method instead.