AttachEvent/addEventListener to Window onload/load - предпочтительный способ

У меня есть script, который начинается, когда страница загружается, и я использовал этот код ниже, чтобы запустить его:

if (window.addEventListener) {
  window.addEventListener('load', otherRelatedParts, false);
}
else if (window.attachEvent) {
  window.attachEvent('onload', otherRelatedParts );
}

но сегодня я попытался с помощью функции self invoking, как это:

(function() {
otherRelatedParts();
}())

Кажется, что работает, во всех браузерах и меньше кода. Является ли это предпочтительным способом добавления событий к загрузке окна?

Ответ 1

Функция self invoking будет выполняться раньше, чем window.onload. Он будет выполнен в тот момент, когда браузер его прочитает. В большинстве случаев это фактически не имеет никакого значения, поэтому вы можете использовать его таким образом. Window.load обычно поднимается, когда загружаются все объекты (изображения, файлы JavaScript и т.д.). $(document).ready() запускается раньше, чем window.onload - когда DOM готов к манипуляции.

Ответ 2

Я предполагаю, что вышеприведенное предложение if написано, чтобы охватить некоторые проблемы с перекрестным браузером. Вы должны учитывать эти факторы из своего кода.

Как это делали другие люди, вы можете использовать некоторую библиотеку как jQuery. Вы должны искать . Ready() там.