susi: window.onload erweiterung ...

hallo,

ich benutzte einige zeit dojo toolkit und da gab es eine möglihckeit mehrere funnktionen mit dojo.addonload zu laden da window.onload ja immer nur eine laden kann, soweit mein wissensstand!

nun hab cih mir eine art loader biblio gebaut ...

window.loader= function(function_name)
{
 caller_onload.push(function_name);
}
window.onloader= function()
{
 //alert(caller_onload);
 for(i=0; i<caller_onload.length; i++)
 {
  alert(caller_onload[i]);
  caller_onload[i].call();
 }
}
loader(init);
window.onload= onloader;

also mit loader(function) übergibt man hier eine function und bei window onload wird onloader aufgerufen!
dies funtkioniert auch ganz gut mit der ersten funktion jedoch wenn das array "caller_omload" mehr als ein element hat geht dies nicht mehr!

wo liegt das problem?
ist function.call() die falsche methode zum aufrufen einer function?

bussi susi

  1. Hi,

    ist function.call() die falsche methode zum aufrufen einer function?

    Ein Objekt wird als Funktion aufgerufen, indem man einfach die Klammern anhängt. Also bei dir vermutlich: caller_onloadi;

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. ich benutzte einige zeit dojo toolkit und da gab es eine möglihckeit mehrere funnktionen mit dojo.addonload zu laden da window.onload ja immer nur eine laden kann, soweit mein wissensstand!

    du kannst die ohne Problme sammeln und in eine anonyme Funktion packen

    window.onloader= function()
    {
    //alert(caller_onload);
    for(i=0; i<caller_onload.length; i++)
    {
      alert(caller_onload[i]);
      caller_onload[i].call();

    übergibst du eine Funktionsreferenz oder den Funktionsnamen?

    Also entweder:
    caller_onloadi;
    oder
    windowcaller_onload[i];

    Struppi.

    --
    Javascript ist toll (Perl auch!)