window.onloadを書いたけど、動かないことが多々あります。
これは、同じページ内で複数のwindow.onloadが記述されている場合に、一つしか動作できないのが原因なようです。
また、「一つしか動作できない」というのは、正確には、関数を上書きしてしまっている(オーバーライド)しているようです。
複数の開発者で開発していた場合には、自分の書いた部分を上書きされてしまい、障害として発生してしまう恐れもあるため、使用はお勧めできません。
例えば、外部ライブラリの中にwindow.onloadの記述があった場合には、その機能が正常に動作しないなどのことも考えられます。
何を使うべきか
もし、window.onloadを使用するのであれば、
window.addEventListener('DOMContentLoaded', function() {
もしくは、
window.addEventListener("load",function() {
の使用をお勧めします。
この二つの違いは、
DomContentLoadedの場合は、DOMツリー構築完了時に、呼び出され、
loadの場合は、DOMツリー構築完了後、画像などの読込が終わったら呼び出されるというところです。
そのため、DomContentLoadedの方が速く呼び出されるので、特に画像の読込などを待つ必要がなければ、こちらを利用する方が良いです。
また、addEventListenerのloadとwindow.onloadは同じタイミングで実行されているようで、そういった点からもwindow.onloadの使用は損をしているのかもしれません。
サンプルコード
document.addEventListener('DOMContentLoaded', function() {
console.log('sample');
});