Ovdje moze biti i vaš oglas!
 

NASLOVNICA

[DHTML & JavaScript]

NAJ SCRIPTE (14)
TEKST (12)
ZA MIŠA (10)
MOUSEOVER (11)
MENU (12)
POZADINA (4)
SATOVI   (7)
SEZONA (11)
SECURITY (5)
SYSTEM (14)
OSTALO (10)
COUNTERI (11)
PROMOCIJA (3)
TIPS&TRICKS (10)
WEB HOSTING (16)
WEB KRATICE (34)
BANNERI
Dodavanje više od jedne scripte na stranicu

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

OGLASI

eXTReMe Tracker