Jak správně spustit javascript funkci po načtení stránky, aneb správné nastavení onload události

Způsobů jak vyvolat spuštění javascript funkce ihned po načtení stránky je několik, jeden z nich je nastavení události v tagu body, ale co když se má volat více funkcí? Nebo nevíte jestli už nebyla nějaká funkce této události nastavena, pak by bylo vhodné ji přidat do zásobníku, aby další funkce nenahradila ty předchozí.


Jedna z možností je nastavení přímo v tagu body, <body onload="load()">, nebo později kódem window.onload=load();, problém tohoto způsobu je, že se funkce nepřidávají do zásobníku, ale poslední nastavená nahradí ty dřívější.

Správně to musíme udělat takhle:

  1. if(window.addEventListener) {
  2. window.addEventListener("load",function() { alert("ahoj"); },false);
  3. }
  4. else if(window.attachEvent) {
  5. window.attachEvent("onload",function() { alert("ahoj"); });
  6. }
  7. else {
  8. window.onload=function() { alert("ahoj"); };
  9. }

Tento způsob je funkční ve Firefoxu i v Internet Exploreru. V případě, že by nebyli dostupné metody addEventListener (firefox), ani attachEvent (IE), pak bude funkce nastavena pomocí window.onload.