Из учебника, события при загрузке:
DOMContentLoaded – браузер полностью загрузил HTML и построил DOM-дерево.
load – браузер загрузил все ресурсы.
Далее:
Если в документе есть теги < script >, то браузер обязан их выполнить до того, как построит DOM.
Поэтому событие DOMContentLoaded ждёт загрузки и выполнения таких скриптов.
Так я хочу выполнить скрипт когда построено DOM-дерево и поэтому делаю document.onload а не document.ready, но выходит видя что на странице есть script браузер до дерева сначала выполнеят его, в скрипте написано onload т.е. "я жду дерева" браузер забивает на скрипт пока и начинает строить дерево опять и потом возвращается к скрипту выполняя то что нужно по onload, потом грузит картинки и стили, опять возвращается к скрипту и выполняет уже то, что указано в ready.
Я всё верно понял? Событий других на этапе загрузки кроме onload и ready нет?