PDA

Pogčedajte punu verziju : javascript: redoslijed dogadjaja


dee
11. 10. 2006., 09:07
nisam siguran jesam li najpreciznije srocio topic, ali radi se o ovome...

na stranici imam externi js koji ne mogu dirat. on generira formu preko koje se nesto unosi i nekud salje (neki affiliate je u pitanju). submit generirane forme ide preko buttona i onClick eventa na njega (zove forma.submit() ). e sad, recimo da se button zove mirko, mogu li ja ikako van mirka saznat da se na njega kliknulo i prije nego se forma submita pozvat neku javascript funkciju, a nakon toga da se nastavi s normalnim submitom.

znaci, mogu li igdje provjerit da li postoji mirko.click(), ako postoji -> odradi funkcijaxy() i nakon odradjene funkcijexy() normalno submit forme?

nadam se da nisam previse zakompliciro :)

jablan
11. 10. 2006., 09:50
Možeš, naravno. Samo je neophodno da se taj tvoj onload() koji će to uraditi izvrši posle onog koji generiše samu formu.

dee
11. 10. 2006., 10:23
a kud da to stavim i kako? (a da budem siguran da ce se odradit prije nego ode na form.action adresu)

mislim, kontam da moja funkcija (odnosno event listener) mora bit poslije generirane forme jer inace nema sta provjeravat, ali kako da napravim da budem siguran da ce se moja funkcija odradit prije submita? kontas sta mislim, nije mi jasan redoslijed po kojem se desavaju stvari odnosno sta odredjuje kad ce se sta odradjivat?

noviKorisnik
11. 10. 2006., 11:02
A ko kaže da ne možeš da diraš ništa po eksternom JS? Ne možeš da menjaš ništa u fajlu, ali možeš da izmeniš bilo koju funkciju i prilagodiš svojim potrebama. I daj nešto koda ako već pitaš gde i kako da staviš izmene.

cvele
11. 10. 2006., 11:31
A ko kaže da ne možeš da diraš ništa po eksternom JS? Ne možeš da menjaš ništa u fajlu, ali možeš da izmeniš bilo koju funkciju i prilagodiš svojim potrebama. I daj nešto koda ako već pitaš gde i kako da staviš izmene.

Da tehnicki je izvodljivo ali neverujem da bi affilate mreza gledala na izmene njenih funkcija blagonaklono:)

dee
11. 10. 2006., 11:33
ma nisam mislio da mi se crta kod nego cisto generalno, kako...

evo, uzmimo primjer ovaj:


<html>

<head>
</head>

<body>

<p> neki tekst, nebitno </p>

<script src="http://www.domena.com/skripta.js" type="text/javascript">
</script>


</body>
</html>



skripta.js ima funkciju validate_form() koja se poziva na onClick buttona u formi (koji se zove mirko). znaci, u samom mirku stoji nesto tipa:


<input type="button" id="mirko" onClick="javascript:if(validate_form()) forma.submit();"

ono sta meni treba je nacin s kojim sam ja siguran da mogu onClick na mirka pokupit prije nego izvrsi validate_form() funkciju, odradit nesto svoje i nastavit sa forma.submit()?

dee
11. 10. 2006., 11:41
Da tehnicki je izvodljivo ali neverujem da bi affilate mreza gledala na izmene njenih funkcija blagonaklono:)

ne bi sigurno :)

poanta je da covjek hoce napravit paralelni submit forme, jedan affiliate-u a drugi sebi na mail jer 'sumnja da ga varaju odnosno ne broje sve sta dodje s njegovog sajta' :D

pa gledam kako da najjednostavnije razdvojim dva submita tako da u njihove skripte ne diram nista a njemu da se posalje sta treba...

jablan
11. 10. 2006., 11:54
ono sta meni treba je nacin s kojim sam ja siguran da mogu onClick na mirka pokupit prije nego izvrsi validate_form() funkciju, odradit nesto svoje i nastavit sa forma.submit()?
Nisam baš u formi sa javaskriptom pa ne mogu da ti kodiram na licu mesta, ali ideja je sledeća:

U svom onload koji se izvršava posle njihovog uradiš sledeće:

nađeš inkriminisano dugme
vrednost njegovog onclick handlera zapamtiš u nekoj promenljivoj X (znaš da u JS promenljive mogu da sadrže funkcije)
postaviš (dakle zameniš, ne dodaš) vrednost tog onclick handlera na svoju funkciju koja radi sledeće:
radi nešto što tebi treba
zove staru funkciju iz promenljive X

// edit: pre->posle. sorry...

dee
11. 10. 2006., 12:04
Nisam baš u formi sa javaskriptom pa ne mogu da ti kodiram na licu mesta, ali ideja je sledeća:

U svom onload koji se izvršava pre njihovog uradiš sledeće:

nađeš inkriminisano dugme
vrednost njegovog onclick handlera zapamtiš u nekoj promenljivoj X (znaš da u JS promenljive mogu da sadrže funkcije)
postaviš (dakle zameniš, ne dodaš) vrednost tog onclick handlera na svoju funkciju koja radi sledeće:
radi nešto što tebi treba
zove staru funkciju iz promenljive X


to je to!

tnx! :)

srdjevic
12. 10. 2006., 07:24
A ako te ne zanima redosled, nego samo hoces 2 submita, onda mozes i ovako nesto:
Ako ima formu, i u njoj submit dugme, onda je affiliate postavio ili onClick na submit, ili onSubmit na formu. Ti samo svojim JSom dodaj onaj drugi. I eto ti, oba ce se izvrsiti.
To je dakle ako te ne zanima redosled... ;-)

LiquidBrain
12. 10. 2006., 15:10
mene ovo podseca na aweber autoresponder :) Ista prica je i sa jednim projektom koji ja radim, ali ... ja sam odradio pricu da pomocu php scripte parsujem html kod koji generishe js, i onda kreiram svoju formu, naravno sa mogucnoshcu za CSS, poshto ovi kako mi se ucinilo to nemaju :)

Malo veci posao, ali ajde, shta se mora nije teshko :)

ivanhoe
12. 10. 2006., 19:34
ja sam to za AWeber formu resio tako sto promenim akciju da submituje mojoj php skripti, ja to snimim sebi i onda redirektujem korisnika na aweber (posto oni primaju i GET, ne samo POST), oni pokupe sta treba i vrate mi usera nazad na sajt... transparentno sto bi rekli nasi politicari, a i ne zavisi od javascripta..