Hallo,
onload wartet nicht nur bis der DOM-Baum erstellt wurde, sondern darüber hinaus bis alle Ressourcen geladen wurden.
Das ist ja erstmal nicht schlimm, oder? Es sei denn, die Seite läd so lang und der User versucht eine Aktion auszuführen, die noch nicht zur Verfügung steht?!
Genau das ist das Problem.
Außerdem hat deine Methode den Nachteil, dass ein später eingebundenes Skript den onload-Handler wieder überschreiben kann.
Wie könnte das ausschauen (reine Neugier)?
Man könnte prüfen, ob der Browser html5 unterstützt und als Fallback
document.addEventListener("load", init);
verwenden.