AFAIK
i.onload to to samo co i.addEventListener('load',...,false)
oczywiście poza IE, który ma attachEvent - ot tak żeby było śmieszniej

Nie ma znaczenia czego użyjesz w tym przypadku ale... jak zwykle są zalecenia:
Nie powinno stosować się konstrukcji typu element.onCostam gdy mamy do czynienia z elementem, który ma mieć przypisane więcej niż jeden handler danego zdarzenia.
Przykładowo jeżeli dasz body onLoad i potem drugie onLoad to drugie zastąpi pierwsze - jeżeli natomiast wykorzystasz addEventListener/attachEvent to handlery zostaną wykonane "równolegle"