Autor Zpráva
RickyHM
Profil *
Dobrý den,
potřebuji radu, zdali je to možné jiným způsobem než ty které popíšu.

Mam několik souboru js scriptu a na indexové strance spouštím jednu funkci (řekněme FUNKCE1) která je v onload, jelikož potřebuje pracovat s objectem(OBJECT1-DIV) div ze stránky z indexu. Jenže v jednom z js souboru potřebuji pracovat právě s tim Objectem(OBJECT1-DIV). Ale ten object zatim samozřejmě neexistuje. Dělám to vše v OOP. A potřebuji nějak zajistit aby se ta funkce spustila po načtení celé stránky, aniž bych ji volal ve funkci(FUNKCE1) nebo v onload. Nechci celej ten script dávat pod onload. Spiš na to nějakym způsobem odkazat. Věřím že to půjde nějakym dokonalým řešením. Nechci a nepouživam žadnou knihovnu.

Děkuji předem za rady.
aDAm
Profil
Podle toho kdy to chceš volat. Jestli když je připraven dom a nebo jestli až když je naloadovana stránka:

function foo(){
  alert("bar")
}
document.addEventListener("DOMContentLoaded", foo, false);

a pokud až po načteni tak takto:

function foo(){
  alert("bar")
}

window.onload = foo();
RickyHM
Profil *
To mi nefunguje.

Mam to takto.

Char.prototype.createWindow = function(){
  this.obj = document.createElement('div');
  console.log('createWindow '+MainObject.obj);    
}

myChar.createWindow({
  source:{
      name:'Info',
      load:'page.html'
  }
});

jenže kód onload se provede až později, timpádem MainObject.obj neexistuje.
aDAm
Profil
proto to musíš dělat přes ty event listenery a tady je problém s prohlížeči, každý podporuje něco jiného. Stačí se zeptat strejdy google.
RickyHM
Profil *
Dobře, tvuj způsob mi dovolí zjistit MainObject.obj pomocí document.getElementById. Ale MainObject.obj stále v tu dobu neni definovaný. Což může být jen proto že se kód v onload provede později. Šlo by to vyřešit tím že bych přesunul tu část kódu onload uplně do hlavičky. Ale jde to vyřešit i jinak? Nějak zajistit že určitá funkce má hlavni prioritu a musí se provést prvni?
_es
Profil
RickyHM:
Viď Kombinace window.onload a atributu onload v <body>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: