|
Jedno od
najcešcih pitanja koje dobivam nisu kako
promijeniti boju pozadine stranica, ili zašto je Javascript
najpopularniji programski jezik na WWW. O ne, ovo nisu cak ni
blizu top 5 pitanja koja dolaze svakodnevno u moj mailbox. Vecina
ljudi se zali je da, scripta radi savršeno kada je sama na
stranici, kada dodaju još jednu (ili više) odjednom jedna ili
nijedna scripta više ne radi.
U cemu je problem?
Prvo i prvo, nema ogranicenja u tome koliko
scripti se moze upotrebljavati (osim "psihicko"
ogranicenje), kao što nigdje ne piše koliko teksta moze stranica
imati. Idemo dalje...
Razlog zašto dvije scripte nece misteriozno
raditi kada ih stavimo zajedno je jednostavan script sukob. U 95%
scripti koje sam pregledao javljao se samo jedan tip sukoba i to
<body ONLOAD> dogadjaj.
Mnoge scripte su napravljene tako da se pokrenu
nakon dogadjaja, kao što je pomicanje miša iznad linka ili kada
završi stranica s ucitanjem. Ova zadnja se dogadja najcesce, i
zahtjeva ove dolje dvije forme:
1) <body
ONLOAD="runscript()">
2) window.onload=runscript //pojavljuje se
unutar<script>taga
Da bi Vam malo olakšao, nazovimo prvu
"alfa", i drugu "beta". Ako vidite gornje
dvije linije u vašoj stranici (gdje "runscript" ovisi o
scripti), Vi znate da ta scripta je postavljena da se pokrene kada
se zavrsi ucitavanje stranice. Ako imate dvije ili više scripti
koja SVAKA koristi alfu i betu, onda dolazi do sukoba.
Riješenje
Nacin na koji se rješava ovaj sukob je
jednostavan.
PRIMJER
1:
SCRIPTA 1: <body onload="napraviovo()">
SCRIPTA 2: <body onload="napraviono()">
RIJEŠENJE: <body
onload="napraviovo();napraviono()">
PRIMJER 2:
SCRIPTA 1: <body onload="napraviovo()">
SCRIPTA 2: window.onload=napraviono()
RIJEŠENJE: <body
onload="napraviovo();napraviono()">
PRIMJER 3:
SCRIPTA 1: window.onload=napraviovo
SCRIPTA 2: window.onload=napraviono
RIJEŠENJE: <body
onload="napraviovo();napraviono()">
Kao što vidite, bez obzira dali dvije scripte
koriste "alfa" ili "beta", riješenje je
jednako, sve stavite u sam <body> tag i pozivanje scripti
razdvojite sa ; drugim rijecima sukob izbjegnut!
I to je to!
webmajstor
|