Когда возникает событие onLoad?
когда загружены все элементы, включая картинки, скрипты и цссы.
событие DOMContentLoaded может быть использовано только на объекте document, возникает когда полностью построено dom дерево документа
событие load может быть использовано на объектах window, script, img, iframe, video, audio и некоторых других, возникает когда полностью загружен ресурс
объект window считается полностью загруженным, когда загрузится html документ + все зависимости прописанные в нем (картинки, скрипты, стили, шрифты и т.д.) в том числе зависимости прописанные в стилях, но тут есть исключение, это событие не ждет загрузки скриптов с атрибутом async, элементов добавленных через dom-api, элементов видео и аудио
атрибут onload тега body является аналогом события load объекта window
событие DOMContentLoaded у document как правило происходит раньше события load у window