Autor Zpráva
Ondra_xxx
Profil *
Zdravím vás. Potřeboval bych radu od zkušenějších :)
Mám JS fci, kterou potřebuji spouštět při každé provedené akci na stránce (tzn. po kliknutí na jakýkoliv odkaz, po odeslání formuláře, po refresh, atd.) Normálně bych využil metodu onload, kterou bych dal do body tagu. Bohužel tentokráte tuto možnost nemám (jiné JS skripty mi nedovolí toto použít).

Máte někdo nějaký nápad, jak danou JS fci spouštět i bez použití onload ? Díky všem za pomoc.
KZLA
Profil *
Kdyby si tam dal onload tak se to spustí jen jednou ne? Ty chces aby se to spoustelo opakovane pri kazde akci??
Ondra_xxx
Profil *
Hmm no kdybych tam dal onload, tak se to bude spouštět pokaždé při obnovení stránky. Pokaždé, když s budu znovu načítat obsah. A to je to co potřebuju. A proto je onload jak stvořené. Ale já ho bohužel nemohu využít.
KZLA
Profil *
tak to dej normalne do scriptu treba do paticky
...
<script type="text/javascript" language="javascript">
<!--
//nejaky kod
alert("To se ukaze pri nacteni stranky");
//-->
</script>
</body>
</html>
neni to nijak efektivni ale ucel to splni
Ondra_xxx
Profil *
KZLA: Hmm to mi bohužel nefunguje. Já to mám udělané v JS tak, že mám asi 4 JS funkce, které si mezi sebou předávají parametry a jsou mezi sebou různě propleteny. Možná proto to takhle nechce běžet.
KZLA
Profil *
Toto fungovat musí pokud ne tak máš pravděpodobně někde chybu v syntaxy. Spusť to pod firefoxem a vyhoď si chybovou konzolu.
Ondra_xxx
Profil *
KZLA: ee. Syntaxe je správně. Mě to funguje když to vyzkoouším přes body onload

potřebuju spustit fci initTimer(time, location);

Tato funkce mi pak spouští další fce a předává jim hodnoty proměnných time a location
KZLA
Profil *
Zkus poslat celý kód takto z popisu s tím asi nikdo nic neudělá...
fos4
Profil
window.onload = function() {
// blabla
}
sakalik
Profil
myslim ze
window.onload = function() {
// blabla
}

nie je moc dobry napad lebo mozes prepisat nejaku f. ktora bola pridana rovnakym sposobom
radsej:

function f()
{

}

if(window.addEventListener)
{window.addEventListener("load",f,false);}
else if(window.attachEvent)
{window.attachEvent("onload",f);}
else {window.onload=f;}
peta
Profil
Ondra_xxx
1) x = document.createNode('SCRIPT')
document.getElementByTagName('HEAD').appendNode?(x)
<script>window.onload=mojefunkce();</script>
nebo
document.getElementByTagName('BODY').appendNode?(x)
<script>mojefunkce();</script>

2) viz sakalik
"nie je moc dobry napad lebo mozes prepisat nejaku f. ktora bola pridana rovnakym sposobom
radsej: "
Ja myslim, ze tim nic nevyresil :)

- muzes prepsat nejakou funkci (viz JS Bookmarklet, pouzivaji nahodny HASH pro nazev funkce, slayeroffice.com, tusim)
- muzes prepsat onload v body
window.onload=f;
Coz je zase chyba sakalikova reseni, proto rikam, ze nic neporesil.

Ono zalezi na tom, co bys chtel presne udelat. Stranku, co na ni je a proc takhle divoce spoustet scripty?

tez je mozne
window.onload+="mojefunkce();"
ALE, kdyz tam je:
"a=1;b=2;"
"a=1;b=2"
tak ten strednik bude trefa doplnit
ALE, pokud odkazujes na funkci
window.onload=f;
tak to prepises a zas nicis puvodni stranku

Hele, jestli mam spravne tuseni a delas nahradu IFRAME pro ajax httprequest, tak ono to jde napsat do frame. Jen mi to neslo tusim v IE, ale mozna by se to dalo pres .frameDocument nebo neco takoveho. Takze jsem to poresil pridanim do PHP tagu SCRIPT
sakalik
Profil
peta

na projektoch kt. pracujem musim pouzivat DOM a to window.addEventListener alebo window.attachEvent pretoze app. co robym su iba nejake pluginy takze ja neviem ci niekto spolu s mojim pluginom nepouzije <body onload="f();"> alebo window.onload

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0