Они оба работают одинаково. Тем не менее, обратите внимание, что если оба определены, будет вызван только один из них. Я вообще избегаю использовать любой из них напрямую. Вместо этого вы можете прикрепить обработчик события к событию загрузки. Таким образом, вы можете легче включать другие JS-пакеты, которым также может понадобиться присоединить обратный вызов к событию onload.
Любая среда JS будет иметь кросс-браузерные методы для обработчиков событий.