Professional Documents
Culture Documents
JavaScript Diplomski PDF
JavaScript Diplomski PDF
PRIRODNO-MATEMATIKI FAKULTET
DEPARTMAN ZA
MATEMATIKU I INFORMATIKU
Milica Perii
- diplomski rad -
2
etvrto poglavlje predstavlja upoznavanje sa objektima JavaScript-a
kroz primere, zajedno sa prikazom Web stranica.
3
Sadraj
1 Uvod .................................................................................................6
1.1 O JavaScript-u i njemu slinim programskim jezicima ................... 6
1.2 Primer Web prezentacije realizovane JavaScript-om ..................... 7
4
6 Otkrivanje i spreavanje problema .................................................66
8 Zakljuak ........................................................................................70
9 Dodaci ............................................................................................71
9.1 Dodatak A- Kljune rei JavaScript-a ........................................ 71
9.2 Dodatak B- Svojstva, metodi i procedure za obradu dogaaja
objekata JavaScript-a .................................................................. 72
9.3 Spisak karakteristinih skriptova............................................. 80
Literatura ..........................................................................................83
Biografija...........................................................................................84
5
Poglavlje 1
Uvod
WML tj. Wireless Markup Language, je jezik nastao iz HTML-a ali baziran
je na XML-u i time dosta "stroiji". Ovaj skript jezik slui za pravljenje stranica
koje se prikazuju u WAP browser-u i smatra se "lakom" verzijom JavaScript-
a. WML stranice sadre samo reference na spoljanje skriptove.
*
EXtensible Markup Language
ECMA-262 Edition 3 moe se pogledati i download-ovati u pdf formatu sa www.ecma-international.org
**
6
1.2 Primer Web prezentacija
7
Poglavlje 2
<script language="JavaScript">
ovde dolazi jedan ili vie redova JavaScript-a
</script>
<html>
<head>
<title> dokument </title>
<script language="javascript">
</script>
<body>
</body>
</html>
8
U jedan dokument mogue je smestiti neogranien broj parova oznaka
<script>, u oba odeljka- <head> i <body>.
Svaki red koda koji se nalazi izmeu oznaka <script> i </script> jeste
naredba JavaScript-a. Da bi bio usklaen sa navikama iskusnih programera,
JavaScript prihvata taku sa zarezom na kraju svake naredbe ali ona je
opciona. Znak za povratak na poetak reda na kraju naredbe je dovoljan da
JavaScript zna da je naredba zavrena.
Funkcija definie blok skript naredbi koje mogu biti pozvane da se izvre
u nekom trenutku posle njihovog uitavanja u browser. Funkcije su jasno
vidljive unutar oznaka <script> zato to svaka definicija poinje reju
function, iza koje sledi ime funkcije (i zagrade).
9
a) Naredbe skripta koje se izvravaju dok se dokument uitava nazivaju se
momentane naredbe. Oznake <script> i naredbe se ukljuuju u telo
dokumenta.
<html>
<head>
<title> onload script </title>
<body>
<script language="javascript">
document.write('<embed width=0 height=0 hidden="true"
autostart="true" volume="5" loop="false"
src="backgroundSong.mp3">');
</script>
</body>
</html>
<html>
<head>
<title> onload script </title>
<script language="javascript">
function done() {
alert("stranica je uitana.");
}
</script>
<body onload="done()">
tekst tela dokumenta
</body>
</html>
10
c) Pokretanje skripta akcijom korisnika slina je pokretanju
odgoenog skripta po uitavanju dokumenta. Skript se pokree npr. klikom
mia na dugme.
<html>
<head>
<title> onclick script </title>
<script language="javascript">
function alertuser() {
alert("pokrenuli ste skript!");
}
</script>
<body>
<form>
<input type="text" name="dugme"
value="pritisni me!" onclick="alertuser()">
</form>
</body>
</html>
<html>
<head>
<title> onclick script </title>
<script language="javascript">
function kazi(poruka) {
alert("dugme kaze: " + poruka);
}
</script>
<body>
<form>
<input type="text" name="dugme" value="klikni me!"
onclick="kazi('Kliknuli ste
me!')">
</form>
</body>
</html>
11
Kada funkcija primi prametre, ona ulazne vrednosti pridruuje imenima
promenljivih koja su zadata u definiciji funkcije. JavaScript tolerie neslaganje
broja parametara u definiciji funkcije, sa brojem parametara koje prosleuje
pozivajua naredba. Isto tako, ako ih je poslato vie nego to je zadato u
definiciji funkcije, JavaScript ne pravi problem.
12
Poglavlje 3
Osnove jezika
3.1 Promenljive
var brojUcenika
brojUcenika=29
3.2 Operatori
operator Opis
== Jednako
!= Nije jednako
> Vee
< Manje
>= Vee ili jednako
<= Manje ili jednako
14
3.2.4 Logiki operatori
Operator Opis
&& AND
|| OR
! NOT
String je obino tekst (pod navodnicima). Spajanje dve ili vie String
promenljive vri se pomou operatora +:
txt1="Dobar"
txt2="dan!"
txt3=txt1+txt2
txt1="Dobar"
txt2="dan!"
txt3=txt1+" "+txt2
ili
txt1="Dobar "
txt2="dan!"
txt3=txt1+txt2
15
Prioritet operatora u JavaScript-u
16
3.3 Kontrolne strukture i petlje
if (uslov) {
kod koji se izvrava ako je vrednost izraza true
}
Ako su umesto jedne grane potrebne dve ili vie koje obrada treba da
prati, koristi se if.. else tj. if.. else if.. else konstrukcija.
if (uslov) {
kod koji se izvrava ako je vrednost izraza uslov true
}
else {
kod koji se izvrava ako je vrednost izraza uslov false
}
Sintaksa:
if (uslov1) {
kod koji se izvrava ako je vrednost izraza uslov1 true
}
else if (uslov2) {
kod koji se izvrava ako je vrednost izraza uslov2 true
}
else {
kod koji se izvrava ako ni jedan od izraza uslov1 i uslov2 nema
vrednsot true
}
17
Pod nekim okolnostima, odluka tipa true ili false nije dovoljna za obradu
podataka u skriptu. Svojstvo objekta ili vrednost promenljive mogu sadravati
bilo koju od nekoliko vrednosti i potreban je poseban put izraunavanja za
svaku od njih. U JavaScript-u postoji kontrolna struktura koju koriste mnogi
jezici. Na poetku strukture se identifikuje o kom izrazu se radi i svakoj
putanji izvravanja dodeljuje se oznaka koja odgovara odreenoj vrednosti. U
pitanju je switch naredba.
switch(izraz) {
case oznaka1:
naredbe
break
case oznaka2:
naredbe
break
default:
naredbe
}
Izraz moe biti bilo koji znakovni niz ili numerika vrednost. Naredba
default obezbeuje nastavak po putanji izvravanja kada vrednost izraza ne
odgovara ni jednoj oznaci naredbe case.
Naredba break, koja slui za izlazak iz petlje, ovde ima znaajnu ulogu.
Naime, ako nije navedeno break posle svake grupe naredbi u case granama,
izvrie se sve naredbe iz svake case grane bez obzira na to da li je naena
odgovarajua oznaka.
Tri naredbe unutar zagrada (parametri petlje for) igraju kljunu ulogu.
pocetniIzraz u petlji for izvrava se samo jednom, prvi put kada se pokree
petlja. Najea primena poetnog izraza je dodela imena i poetne vrednosti
promenljivoj brojaa petlje. Koristi se naredba var koja i deklarie ime
promenljive i dodeljuje joj poetnu vrednost. Kada je promenljiva brojaa
definisana u poetnom izrazu, izraz uslov obino definie do koje vrednosti
broja petlje treba da ide pre nego to se kruenje zavri. Poslednja izraz,
korak, izvrava se na kraju svakog izvrenja petlje nakon to su se pokrenule
18
sve naredbe unutar for-a. Obino je to poveavanje brojaa petlje za jedan za
svaki sledei prolaz, tzv. inkrementacija vrednosti.
<html>
<body>
<script language="javascript">
for (var i=0; i<=10; i++) {
document.write("Broj " + i)
document.write("<br>")
}
</script>
</body>
</html>
<html>
<body>
<script language="javascript">
document.write("Parni brojevi u otvorenom intervalu od 1 do 10 su:");
for (var i=1; i<=10) {
if (i%2 == 0) {
document.write("Broj " + i+ "je paran!");
document.write("<br>");
i += 2;
}
else {
i++;
}
}
</script>
</body>
</html>
19
Petlja for nije jedina vrsta ponavljake petlje u JavaScript-u. Druga
naredba, while, postavlja malo drugaiju petlju. While petlja pretpostavlja da
e naredbe skripta doi u stanje u kome se automatski izlazi iz petlje.
while (uslov) {
naredbe
}
Ova petlja izvodi akciju sve dok izraz uslov ne dobije vrednost false.
do {
naredbe
}
while (uslov)
20
Petlja for omoguava i da se preskoi izvravanje naredbi unutar nje
zbog samo jednog uslova. Moe da postoji neka vrednost brojaa za koju nije
poeljno da se naredbe izvre. Naredba continue primorava skript da, ako je
uslov ispunjen, pree na sledei korak tj. povea vrednost brojaa i nastavi
petlju od te vrednosti.
3.4 Funkcije
<html>
<head>
<script type="text/javascript">
function imeFunkcije (parametri) {
naredbe
}
</script>
</head>
function prod(a,b) {
x=a*b
return x
}
21
Kada funkcija primi vrednost parametara od naredbe koja ju je pozvala,
te vrednosti se dodeljuju svojstvu arguments objekta function. Ovo svojstvo
je niz vrednosti, gde je svaka vrednost parametar dodeljena lanu niza iji
indeksi poinju nulom.
3.5 Nizovi
22
mojNiz.length; // rezultat je 3
delete mojNiz[1];
mojNiz.length = 3; // rezultat je ponovo 3
mojNiz[1]; // rezultat je undefined
23
Poglavlje 4
Objekti JavaScript-a
Svaki fiziki objekat ima skup karakteristika koji ga definie: oblik, boju,
teinu, i jo mnogo drugih koje ga razlikuju od ostalih objekata. Svaka od
ovih osobina naziva se svojstvo, i svako od svojstava ima neku vrstu
vrednosti koja mu je dodeljena. Svojstva HTML objekta najee se
podeavaju atributima HTML oznaka. Prisustvo JavaScript-a esto dodaje
opcione atribute ija se inicijalna vrednost moe modifikovati kada se
dokument uita.
Ako svojstvo lii na opisni pridev za objekat (name, value, ...), onda je
metod glagol. Metod je sve u vezi sa akcijom objekta. On ili neto radi
objektu, ili neto sa objektom to ima uticaja na ostale delove skripta ili
dokumenta. Oni su neka vrsta komandi, ali takvih ija su ponaanja povezana
sa odreenim objektima. Jedan objekat moe imati neodreen broj metoda
koji su s njim povezani ukljuujui i ni jedan. Imena metoda se zavravaju
parom zagrada a da bi se metod pokrenuo, naredba JavaScript-a mora
sadrati njegovu referncu, preko njegovog objekta.
document.orderForm.submit()
24
dokumentu prima dogaaj neke vrste. Da li e objekat uraditi bilo ta drugo
kao odgovor na dogaaj, zavisi od atributa koji se unosi u definiciju HTML
objekta. Atribut se sastoji od imena objekta i znaka jednakosti, kao i uputstva
ta da se radi kada odreeni dogaaj otpone.
25
4.1 Objekat window
window.imeSvojstva
window.imeMetoda(parametri)
self.imeSvojstva
self.imeMetoda(parametri)
26
<html><head><title>otvaranje prozora</title>
<script>
function openAccessories{
window.open ("accessories.html", "accessories", width= 100,
height= 100, scrollbars= no, resizable= no, menubar= yes,
location= yes ")
}
</script>
</head>
<body>
<form>
<input type="button" value="accessories" onclick= "openAccessories()">
</form>
</body>
</html>
27
svih prozora. Nasuprot focus() je blur() koji odabrani prozor gura u pozadinu
svih otvorenih prozora.
<a href="http://home.mySite.com"
onMouseOver=
"window.status='posetite homepage mog website- a' ; true">
mySite
</a>
Metod alert() generie okvir za dijalog koji prikazuje svaki tekst koji se
preda kao parametar, a dugme OK omoguava korisniku da ukloni
upozorenje. Browser ubacuje rei koje ukazuju na to da je alert box
28
upozorenje JavaScript-a- JavaScript Alert, i ovaj tekst se ne moe menjati
skriptom; samo se sadraj druge poruke moe menjati.
sintaksa: alert("sometext")
<html>
<head>
<title>alert box boje</title>
<script language= "javascript">
function kojaBoja() {
var form= document.forms[0]
for (var i=0; i< form.boje.length; i++) {
if (form.boje[i].checked) {
break
}
}
alert('odabrali ste' + form.boje[i].value + '!')
}
</script>
</head>
<body>
<form>
<input type="radio" name="boje" value= "crvena" onClick="kojaBoja() ">
<input type="radio" name="boje" value= "plava" onClick="kojaBoja() ">
<input type="radio" name="boje" value= "zuta" onClick="kojaBoja() ">
</form>
</body>
</html>
Vidimo da, ako je svojstvo checked true tj. data opcija je odabrana,
break naredba uslovljava izlazak iz petlje, i indeks odabrane opcije pronaen
pomou for petlje koristi se za ispis poruke alert box-a.
Drugi stil popup box-a prikazuje dva dugmeta: Cancel i OK, i naziva se
confirm box. window.confirm() je jedan od metoda koji vraa vrednost: true
ako korisnik pritisne OK i false ako pritisne Cancel. Ovaj okvir za dijalog moe
se koristiti kao podsticaj korisniku da donese odluku o tome kako da se
nastavi skript. Izlazna vrednost moe se koristiti i kao uslov u nekoj if
konstrukciji.
sintaksa: confirm("sometext")
29
Sledei primer prikazuje kako to korisnik preko confirm box-a moe
uticati na dalji "tok" skripta:
<html>
<head>
<script language = " javascript">
function potvrdi() {
var odgovor = confirm("Napustate ovu stranicu?")
if (odgovor){
alert("Dovidjenja!")
window.location = "http://www.im.ns.ac.yu/";
}
else{
alert("Hvala sto ostajete!")
}
}
</script>
</head>
<body>
<form>
<input type="button" onclick="potvrdi()" value="Napusti Stribog">
</form>
</body>
</html>
30
Dakle, ako korisnik potvrdi odlazak pritiskajui OK (promenljiva odgovor
je true), skript ga alje na homepage Instituta za matematiku
(www.im.ns.ac.yu). Inae, iskae alert box koji zahvaljuje korisniku to
ostaje.
<head>
<script type="text/javascript">
function prompter() {
var reply =
prompt("Dobar dan korisnice! Kako je Vase ime?", "")
alert (reply)
}
</script>
</head>
<body>
<input type="button" onclick="prompter()" value="Moje ime!">
</body>
31
Skript u gornjem primeru koristi prompt box da bi od korisnika dobio
informaciju o njegovom imenu, a zatim ga prikazuje u alert box-u.
<frameset>
top,
parent
<frame> <frame>
child child
frame frame
document document
Ako skript u svom prozoru ima pristup nekom objektu, funkciji ili
globalnoj promenljivoj, njemu se moe pristupiti pomou drugog skripta iz
drugog okvira u hijerarhiji, pod uslovom da su oba dokumenta na istom Web
serveru. Referenca u skriptu e morati da koristi jedan od tri mogua izbora u
hijerarhiji parent-child, a to su: parent- child, child- parent i child- child.
32
imenom unutar oznake frame. Dakle, reference od roditelja- parent, do
potomka- child, slede jedan od sledea dva modela:
frames[n].objFuncVarName
imeFrame.objFuncVarName
parent. objFuncVarName
top.objFuncVarName
parent.frames[n].objFuncVarName
parent.imeFrame.objFuncVarName
33
Sledei HTML kod deli stranicu na dva okvira, vertikalno:
<html>
<head>
<title>okviri</title>
</head>
<frameset cols="20%, 80%">
<frame name="menu" src="menu.html" noresize=true
frameborder=0>
<frame name="main" src="main.html" noresize=true
frameborder=0>
</frameset>
</html>
<html>
<head>
<script>
// funkcija za padajuci dropdown meni
function DropDownMenu(entered){
with (entered){
ref=options[selectedIndex].value;
splitcharacter=ref.lastIndexOf("&");
if (splitcharacter!=-1) {
loc=ref.substring(0,splitcharacter);
target=ref.substring(splitcharacter+1,1000).toLowerCase();
}
else {
loc=ref;
target="_self";
}
lowloc=loc.toLowerCase();
if (lowloc=="false") {return;}
parent.main.location=loc;
}
}
</script>
</head>
34
<body bgcolor=#4d4029>
<p align=center>
<font size="2" face="Impact" color="#89ae3b"> menu </font><br>
newWindow.location= "http://www.mySite.com"
35
function sledecaTaraba(gde) {
window. location.hash = gde
}
<form>
<input type= button value next onclick= "sledecaTaraba(tar1)">
</form>
36
svojstava current, next i previous, sa kompletnom listom. Ne preporuuje se
korienje ovih mogunosti osim ako korisnik nije prethodno upozoren.
window.document.imeSvojstva
window.document.imeMetoda(parametri)
37
U prvom sluaju se prepliu delovi skripta i HTML-a; skript se pokree
kada se dokument uita, upisujui HTML sadraj. U drugom sluaju, skript
prihvata unos korisnika u jednom okviru i odreuje izgled i sadraj koji je
namenjen drugom okviru.
4.4.1 Cookies
o Name cookie - prvi put kada neko poseti Web prezentaciju koja
sadri skript za ovaj cookie, posetilac mora da unese neko korisniko
ime. To ime se uva u cookie-ju i sledei put kada dati korisnik pristupi
toj lokaciji, dobie pozdravnu poruku tipa: "Zdravo Jim!". Ime se izdvaja
iz cookie-ja.
o Password cookie - slino name cookie-ju, ali ovde se unosi lozinka
koja se takoe uva u cookie-ju.
o Date cookie - datum prve posete datog korisnika Web prezentaciji
stavlja se u cookie. Pri sledeoj poseti mogue je ispisati poruku
38
korisniku tipa: "Poslednji put ste posetili ovu prezentaciju u utorak,
25.03. 2007."
Kada se prvi put takve informacije unesu u obrazac koji se alje CGI
programu, CGI program preporuuje browser-u da tu informaciju zapie na
hard disk raunara. Meutim, browser ne otvara svima direktorijum hard
diska. Mehanizam cookies obezbeuje pristup do posebne tekstualne datoteke
na hard disku, koja se nalazi na mestu koje zavisi od operativnog sistema. U
Windiws-ovoj verziji Navigatora datoteka se zove cookies.txt i smetena je u
direktorijumu Navigatora. Internet Explorer koristi malo drugaiji sistem:
svaki cookie se snima u sopstvenu datoteku u direktorijumu Cookies koji je
smeten meu sistemskim direktorijumima. U poljima svakog zapisa cookie
nalazi se sledee:
Svaki cookie mora imati ime i znakovni niz kao vrednost (ak i prazan
niz). Par ime- vrednost mora biti jedan niz bez take i zareza, zareza ili znaka
razmaka. Za razmak izmeu rei poeljno je koristiti funkciju escape() koja
kodira ASCII razmak kao %20 (a zatim unescape() za dekodiranje na obian
razmak za kasnije kada cookie bude pozvan). Na primer, ako se kolaiu
userNmae dodaje znakovni niz Jim, to izgleda ovako:
CGI program- Common Gateway Interface' unete podatke alje u bazu podataka ili ih prosleuje
drugom programu na serveru
39
Kolaii se ne mogu tretirati kao objekti, ve se iz znakovnog niza mora
izdvojiti eljeni podatak iz para ime- podaci koristei metod substring(). Prvi
parametar metoda substring sadri znak jednakosti, kojim se razdvaja ime od
podataka.
function getCookie(c_name) {
if (document.cookie.length>0) {
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1) {
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return
unescape(document.cookie.substring(c_start,c_end))
}
}
return ""
}
Cookies imaju i rok trajanja. Ako cookie treba da opstane i posle tekue
sesije, on ima i rok trajanja koji postavlja pisac cookie-ja. Datum roka
trajanja mora biti predat kao znakovni niz koji oznaava vreme po Griniu
(GMT).
function setCookie(c_name,value,expiredays){
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" :
;expires="+exdate.toGMTString())
}
40
Konano, funkcija koja ispisuje pozdravnu poruku nakon to prepozna
korisnika po korisnikom imenu, ako je cookie postavljen. Ako cookie nije
postavljen, od korisnika se trai da unese ime u prompt box.
function checkCookie() {
username=getCookie('username')
if (username!=null && username!="") {
alert('Welcome again '+username+'!')}
else {
username=prompt('Please enter your name:',"")
if (username!=null && username!="") {
setCookie('username',username,365)
}}}
<html>
<head>
<title>cookie</title>
<script language="javascript">
function setCookie(cname, value, expdays){
var exdate= new Date();
exdate.setDate(exdate.getDate() + expdays)
document.cookie = cname+ "=" +escape(value)+ ((expdays = null)?"
":"; expires="+exdate.toGMTString())
}
function getCookie(cname){
if (document.cookie.length>0){
cstart=document.cookie.indexOf(cname+"=");
if (cstart != -1){
cstart= cstart+cname.length+1;
cend= document.cookie.indexOf(";", cstart);
if (cend == -1){
cend= document.cookie.length;
}
return unescape(document.cookie.substring(cstart, cend));
}
}
return "";
}
41
function checkCookie(){
username= getCookie('username');
if (username != null && username != ""){
alert('welcome to shophopping '+username+'!');
}
else{
username= prompt('WELCOME NEW VISITOR! Please enter your
name:',"");
if (username != null && username != ""){
setCookie('username', username, 365);
}
}
}
</script>
</head>
<body bgcolor=#4d4029 onload= "checkCookie()">
</body>
document.links[n]. imeSvojstva
42
pozove skript funkciju. Ova tehnika ukljuuje pseudo-URL koji se zove
javascript:URL. Sintaksa za ovu konstrukciju je sledea:
document.links[n]. target
4.6.1 Image
Kako dokument moe imati vie od jedne slike, reference objekata slika
uskladitene su kao niz u modelu objekta. Prema tome, slika se moe
povezati pomou indeksa niza ili pomou imena:
43
document. images[n]
document. imeSlike
44
Efekat koj e biti prikazan je pitanje ukusa- promena boje, pojavljivanje
okvira, blago zatamnjenje- koji god efekat da je u pitanju skript je isti.
<head>
<title>promena slike</title>
<script language="JavaScript">
function alterOver1(){
document.a1.src="preko.jpg" }
function alterOut1(){
document.a1.src="nazad.jpg" }
</script>
<body>
<img src="linka.jpg" name="a1" height=50 width=50
border=0 onmouseover="alterOver1()"
onmouseout="alterOut1()">
</body>
45
Primetimo promenu sliice "accessories".
<html>
<head>
<title>Bags</title>
<script language="JavaScript">
NewImg= new Array( "bag1.jpg", "bag2.jpg", "bag3.jpg");
var ImgNum = 0;
var ImgLength = NewImg.length - 1;
var delay = 3000;
var lock = false;
var run;
function chgImg(direction) {
if (document.images) {
ImgNum = ImgNum + direction;
if (ImgNum > ImgLength) { ImgNum = 0; }
if (ImgNum < 0) { ImgNum = ImgLength; }
document.slideshow.src = NewImg[ImgNum];
}
}
46
function auto() {
if (lock == true) {
lock = false;
window.clearInterval(run);
}
else if (lock == false) {
lock = true;
run = setInterval("chgImg(1)", delay);
} }
</script>
</head>
<body bgcolor=#4d4029 link=#89ae3b alink=#89ae3b vlink=#89ae3b>
<table width=400 height=380>
<tr> <td height=38 width=400 align=center>
<font face="impact" size="6"
color="#E09FCE">Bags</font></td>
</tr>
<tr> <td height=261 width=400 align=center valign=middle>
47
</table>
</body>
</html>
Prikaz u browser-u:
4.6.2 Area
Pored elemenata koji se prave oznakama img kao prve grupe objekata
koji se koriste u skriptovima da poveaju interaktivnost, tu su i elementi koji
se prave pomou oznaka area i slue za pravljenje slikovnih mapa. JavaScript
tretira objekat mape kao jedan od objekata veze (link, anchor) u dokumentu
jer pritisak mia na oblast mape vodi korisnika do drugog dokumenta ili sidra
na istoj stranici, to je karakteristika hiperveze. HTML definicije veza i oblasti
mapa su razliite ali su im svojstva i dogaaji skoro isti. na osnovu koordinata
i oblika mogue je definisati bilo koji broj oblasti unutar slike, a uz pomo
grafikih alata lako se odreuju koordinate slike.
48
Navedeni delovi koda piu se unutar oznaka body na eljenom mestu, a
predstavljaju slikovnu mapu u kombinaciji sa JavaScript-om (primetimo da se
koristi i promena slike kotrljanjem mia, kao i procedura onclick=)
4.6.3 Layer
Svaki layer u Navigatoru sadri neki HTML koji postoji u vlastitoj ravni
iznad glavnog dokumenta koji se uitava u prozor. Sadraj pojedinanog sloja
moe promeniti poloaj, veliinu ili biti sakriven pomou skripta. U tom
sluaju, bilo koja promena koja utie na osnovni sloj, utie i na sve slojeve u
njemu.
document.sloj1.bgColor = "red"
Svaki sloj ima svoj fiziki sloj. irina i visina se po pravilu predstavljaju
promenljivama x i y, trea dimenzija- poloaj sloja u skupu slojeva- naziva se
z redosled. Redosled se automatski odreuje po redosledu uitavanje, gde
najvii layer ima najvei broj. Najvii je onaj koji je najblii posmatrau kada
gleda stranicu na monitoru. Svojstva above, below, siblingAbove, siblingLeft,
definiu poloaj datog layer-a u odnosu na one oko njega. background i
bgColor tiu se pozadine i boje pozadine sloja. Mogue je i definisati poloaj i
49
veliinu pravougaone oblasti sloja koja je vidljiva za korisnika pomou objekta
svojstva layer.clip.
Sloen HTML dokument moe imati vie obrazaca, gde svaki par oznaka
<form> i </form> definie po jedan.
document.forms[0]
*
ISP- Internet Service Provider
50
Poslednji vaan atribut je enctype. Ovaj atribut je poeljno postaviti na
"text/plain" iz razloga to e, ako se izostavi ovaj atribut, browser podatke iz
obrasca poslati neitko i u jednom redu. Dakle:
ime=Jim+Jones&adresa=Elm+Street+5&zanimanje=slikar
ili sa enctype="text/plain":
ime=Jim Jones
adresa=Elm Street 5
zanimanje=slikar
document.forms[0].action
document.imeObrasca.action
document.forms[0]. submit()
51
pozvati i podesiti njegov sadraj u svakom trenutku. Sadraj svojstva value
uvek je znakovni niz.
<html>
<head>
<title></title>
<script>
function checkform(){
var form=document.forms[0]
for (var i=0; i<form.elements.length; i++){
if (form.elements[i].value==""){
alert("please fill out all the fields")
break
}
}
return true
}
</script>
</head>
<body>
<form onsubmit="checkform()">
<p align=center>
<font face=impact size=4 color=#e09fce>name</font>
<input type=text maxlength=20 size=30>
</p>
<p align=center>
<font face=impact size=4 color=#e09fce>e- mail</font>
<input type=text maxlength=20 size=30>
</p>
<p align=center>
<font face=impact size=4 color=#e09fce>message</font>
<textarea id=unos rows=10 cols=40> </textarea>
</p>
52
<p align=center>
<input id=Submit type=submit value=send></font>
</p>
</form>
</body>
</html>
4.7.1 Dugmad
document. forms[0].imeGrupe.length
53
<html>
<head>
<title> provera svojstva checked </title>
<script language="javascript">
function inspectbox(form){
if (form. checkbutton.checked){
alert('polje je potvrdjeno!')
} else {
alert('polje trenutno nije potvrdjeno')
}
}
</script>
</head>
<body>
<form>
<input type="checkbox" name ="checkbutton"> potvrdite ovde <br>
<input type="button" name ="boxchecker" onClick=
"inspectbox(this.form)" value="stanje">
</form>
</body>
</html>
54
4.7.2 Objekat select
document.forms[0]. selectName.selectedIndex
<html>
<head>
<script>
function DropDownMenu(entered){
with (entered){
ref=options[selectedIndex].value;
splitcharacter=ref.lastIndexOf("&");
if (splitcharacter!=-1) {
loc=ref.substring(0,splitcharacter);
target=ref.substring(splitcharacter+1,1000).toLowerCase();
}
55
else {
loc=ref;
target="_self";
}
lowloc=loc.toLowerCase();
if (lowloc=="false") {return;}
parent.main.location=loc;
}
}
</script>
</head>
<body bgcolor=#4d4029>
<p align=center>
<font size="2" face="Impact" color="#89ae3b"> menu </font><br>
<select onChange="DropDownMenu(this)">
<option value="false"> occasion </option>
<option value="casual.htm"> casual </option>
<option value="formal.htm"> formal </option>
<option value="night.htm"> night </option>
</select>
</p>
</body>
</html>
56
4.8 Objekat niza znakova, matematika i datum
Znakovni niz tj. string, je svaki tekst izneu znakova navoda. Znakovi
navoda mogu biti celi ili polunavodnici.To omoguava da jedan niz bude
ugneen unutar drugoga. JavaScript ne namee nikakva ogranienja u broju
znakova u nizu znakova. Mnogi browser-i meutim ograniavaju duinu
naredbe skripta na 255 znakova. Ova granica se ponekad prekorai ako skript
sadri dugaak znakovni niz koji treba da postane skriptovani sadraj
stranice. Takve redove treba podeliti na manje.
string.imeMetoda()
57
Nekoliko metoda konvertuje ceo string u mala ili velika slova:
\" navodnik
\' apostrof
\\ back slash (obrnuta kosa crta)
\b backspace (brisanje unazad)
\t tabulator (uvlaenje)
\n novi red
\r carriege return (prelazak u novi red)
58
4.8.1 Matematiki objekat Math
59
Sledi primer skripta za prikaz trenutnog vremena.
<html>
<head>
<script type="text/javascript">
function startTime() {
var today=new Date()
var h=today.getHours()
var m=today.getMinutes()
var s=today.getSeconds()
m=checkTime(m)
s=checkTime(s)
document.getElementById('txt').innerHTML=h+":"+m+":"+s
t=setTimeout('startTime()',500)
}
// ispred brojeva manjih od 10 dodaje se nula
function checkTime(i) {
if (i<10) { i="0" + i }
return i
}
</script>
</head>
<body onload="startTime()">
<div id="txt"></div>
</body>
</html>
60
Poglavlje 5
Kaskadne liste stilova ili CSS1 (broj je oznaka nivoa; postoji i 2),
definiu karakteristike za prikazivanje elemenata dokumenta. Bilo koji
element koji sadri HTML oznaku moe biti vezan za jednu ili vie postavki
koje se donose na nain prikaza tog sadraja. Kombinacija HTML oznake i
definicije stila naziva se pravilo (rule). Delovi pravila su selektor (identifikator
oznake, npr. h1) i deklaracija. Deklaracija ima dve komponente: ime svojstva
i vrednost, odvojene dvotakom.
<style type="text/css">
p {color: green}
</style>
Dakle, tip stila je definisan kao tip CSS. Pravilo odreuje da svi blokovi
izmeu oznaka <p> i </p> (selektor p), imaju tekst u zelenoj boji (svojstvo
je color, a vrednost green). Mogue je dodati jo deklaracija i one u tom
sluaju moraju biti odvojene jedna od druge takom i zarezom.
<style type="text/css">
p {color: green font' size: 10pt}
</style>
61
Takoe, CSS1 nudi i objedinjavanje stilova povezivanjem sa spoljanjim
dokumentima koji sadre pravila stila, kao JavaScript sa spoljanjom
bibliotekom skriptova.
62
dodaje se svojstvo position koje ima dve mogue vrednosti: absolute i relative
(ovo svojstvo postoji i u CSS-P).
<html>
<head>
<style type="text/css">
#element1ime {position: absolute}
#element2ime {position: absolute}
</style>
</head>
...
a. grananje
b. jednakost platformi
c. namenski API (Application Program Interface).
63
var Nav4, IE4
if (navigator. appVersion. charAt(0) == "4"){
if (navigator. appName == "Netscape"){
Nav4 true
}
else if (navigator. appVersion. indexOf("MSIE") != -1) {
IE4 = true
}
}
(ovaj primer pristup omoguava samo browser-ima verzije 4)
64
c. Namenski API (Application Program Interface) JavaScript-a je
funkcija koju definie pisac skripta a u ulozi je posrednika izmeu skriptova i
ostalih celina. Na primer, postavljanje svojstva zIndex objekta ije ime je
prosleeno kao parametar:
65
Poglavlje 6
66
provera izraunavanja- za proveru izraunavanja najbolji alat je
JavaScript Debugger * . Pored Debugger postoje i druge tehnike. Kako
veina problema sa izvravanjem potie iz funkcija, pretragu treba
poeti od vrha funkcije. Pre svake dodele svojstva objekta promenljivoj
ili poziva metoda objekta string, Math ili Date ubaciti alert box. Kada
treba proveriti vrednost izraza u toku izvrenja petlje ili kroz dugaak
niz naredbi skripta, bolje je usput ispisivati vrednosti. Sa dobro
smetenim pozivima metoda
*
JavaScript Debugger moe se preuzeti sa http://developer.netscape.com
67
Poglavlje 7
68
Celina BlitzGlitz je stranica koja se sastoji od mnotva okvira koji
meusobno komuniciraju. Stranica odabrana iz padajueg menija otvara se u
centralnom okviru. Stranica predviena za korisnike tj. njihov odziv i
komentare- Comments, sadri klasinu formu obrasca kao i skript za proveru
unetih podataka.
69
Poglavlje 8
Zakljuak
bolji dizajn
itanje i pisanje HTML elemenata
proveru unetih podataka pre slanja istih serveru
prepoznavanje browser-a kao i samog korisnika, itd.
70
Poglavlje 9
DODACI
71
9.2 Dodatak B - svojstva, metodi i procedure za obradu
dogaaja objekata JavaScript-a
Objekat window
72
Objekat location
Objekat history
Objekat document
73
Objekat link
Objekat anchor
Objekat image
74
Objekat area
Objekat layer
Objekat form
75
Objekat text, password i textarea
Objekat select
76
Objekat navigator
Objekat string
77
Objekat Math
78
Objekat Date
79
9.3 Dodatak C - spisak skriptova
Cookie ----------------------------------------------------------------------- 41
(name cookie)
80
Priloena su jo dva skripta koja su deo primera Web prezentacije, a
nisu prikazana u tekstu rada.
function writeTip() {
var msgf=("<i><font size=3 face=monotype corsiva color= #e09fce>"
+msg[today]+"</font></i>")
document.write(msgf);
}
81
a zatim na mestu gde elimo da poruka bude prikazana (u oznakama body):
<script>writeTip()</script>
82
Literatura
83
Biografija
84
UNIVERZITET U NOVOM SADU
PRIRODNO MATEMATIKI FAKULTET
KLJUNA DOKUMENTACIJSKA INFORMACIJA
Redni broj:
RBR
Identifikacioni broj:
IBR
Tip dokumentacije: Monografska dokumentacija
TD
Tip zapisa: Tekstualni tampani materijal
TZ
Vrsta rada: Diplomski rad
VR
85
uva se:
U
Vana napomena: nema
VN
Izvod:
IZ
JavaScript je jezik opte namene i najvee primene u Web
design-u. Ugrauje se u servere, razvojne alate i druge
browser-e. JavaScript postoji ve dugi niz godina, u razliitim
oblicima i formama. Najvei doprinos JavaScript-a Web
design-u je dinaminost i vea interaktivnost izmeu Web
stranica i njihovih posetilaca.
JavaScript je najpopularniji scripting jezik na internetu i,
jednom savladan, piscima skriptova prua neogranienu
kreativnost.
86