kermek iwa 19
DESCRIPTION
iwaTRANSCRIPT
Izgradnja Web aplikacijaIzgradnja Web aplikacija
Prof. dr.sc. Dragutin Kermek
Sveučilište u Zagrebu
Fakultet organizacije i informatike
Pavlinska 2, Varaždin 42000
19. dio
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin2Izgradnja Web aplikacija - FOI
Uvod u Javascript jezik i koncept programiranja.
Programiranje događaja.
Razvoj dinamičkih osobina dokumenata.
Objektni model dokumenta (Document Object Model - DOM).
Programiranje na strani korisnika
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin3Izgradnja Web aplikacija - FOI
DOM i BOM
DOM - Document Object Model. •pohranjuje informacije o važeće učitanom dokumentu
BOM - Browser Object Model. •ponaša se slično kao DOM samo što sadrži i informacije o korisniku
sustava, tipu preglednika, lokaciji u važećem dokumentu, rezulociju ekrana,
povijesti preglednika, hijerarhiji okvira i druge detalje.
Radi se spajanju HTML-a, JavaScript-a, CSS-a.
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin4Izgradnja Web aplikacija - FOI
DOM – što je?
DOM - Document Object Model. •je API za ispravne HTML i pravilno formirane XML dokumente.
•određuje logičku strukturu dokumenta i način kako se pristupa dokumentu i s
njime manipulira.
•s njime programeri mogu graditi dokumente, navigirati njihovu strukturu,
dodati, mjenjati i brisati elemente i sadržaj.
•sve što se nađe u HTML ili XML dokumentu može biti pristupano, mjenjano,
brisano ili dodano korištenjem DOM-a, uz nekoliko iznimaka (DOM sučelja za
XML unutarnje i vanjske podskupove još nisu specificirana).
•postoji posebno značajno korištenje DOM-a kod programskog jezika Java
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin5Izgradnja Web aplikacija - FOI
DOM – za tablicu
<HTML>
<HEAD></HEAD>
<BODY>
<TABLE>
<TBODY>
<TR>
<TD>Shady Grove</TD>
<TD>Aeolian</TD>
</TR>
<TR>
<TD>Over the River, Charlie</TD>
<TD>Dorian</TD>
</TR>
</TBODY>
</TABLE>
</BODY>
</HTML>
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin6Izgradnja Web aplikacija - FOI
DOM – struktura tablice
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin7Izgradnja Web aplikacija - FOI
DOM – što se može?
DOM - Document Object Model. •pogledati svaki atribut bilo kojeg objekta
•dodjeliti vrijednost svakom atributu (osim ako nije samo za čitanje)
•rukovatelju događaja u objektu dodjeliti funkcija koju će pozivati
•rukovatelju događaja u objektu oduzeti funkciju pa više neće pozivati
property = "innerText";
document.forma.text[property] = ...
document.forma.text.innerText = ...
document.all.text
document.getElementById("menu");
2 pristupa do atributa
vraća polje objekata
koji imaju ID text
vraća objekt koji ima
ID menu ili polje
objekata koji imaju
ID menu
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin8Izgradnja Web aplikacija - FOI
DOM – primjer 1
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>FOI - Programiranje za Web : JavaScript - Primjer broj 11_1</title></head>
<body>
<h1>JavaScript skripte: Primjer broj 11_1</h1>
<script language="JavaScript">
<!--
function prikazi()
{
window2 = window.open("", "Prozor_1", "scrollbars=yes, width=300, height=400");
for (property in document.forma.text)
window2.document.writeln(property + ": " + document.forma.text[property] +
"<BR>");
}
// -->
</SCRIPT>
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin9Izgradnja Web aplikacija - FOI
DOM – primjer 1/1.
<body>
<form name="forma">
<input type="text" name="text"><br>
<a href="javascript:prikazi();">Prikaži</a>
</form>
</body>
</html>
DOM/Primjer11_1 – DOM
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin10Izgradnja Web aplikacija - FOI
DOM – primjer 1/2.
accessKey:
align:
all: [object]
alt:
attributes: [object]
behaviorUrns: [object]
border:
canHaveChildren: false
checked: false
childNodes: [object]
children: [object]
className:
clientHeight: 18
clientLeft: 2
clientTop: 2
clientWidth: 151
complete: false
currentStyle: [object]
dataFld:
dataFormatAs:
dataSrc:
defaultChecked: false
dir:
disabled: false
document: [object]
dynsrc:
filters: [object]
firstChild: null
form: [object]
height: 34933064
hspace: 0
id:
indeterminate: false
innerHTML:
innerText:
isTextEdit: true
lang:
language:
lastChild: null
loop: 1
lowsrc:
maxLength: 2147483647
name: text
nextSibling: [object]
nodeName: INPUT
nodeType: 1
nodeValue: null
offsetHeight: 22
offsetLeft: 10
offsetParent: [object]
offsetTop: 71
offsetWidth: 155
onabort: null
onafterupdate: null
onbeforecopy: null
.....
src:
start: fileopen
status: false
style: [object]
tabIndex: 0
tagName: INPUT
tagUrn:
title:
type: text
value:
vrml:
vspace: 0
width: 0
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin11Izgradnja Web aplikacija - FOI
DOM – primjer 2
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>FOI - Programiranje za Web : JavaScript - Primjer broj 11_2</title></head>
<body>
<h1>JavaScript skripte: Primjer broj 11_2</h1>
<P onmouseover="style.color='red'" onmouseout="style.color='black'">1. red.</P>
<P onmouseover="style.color='green'" onmouseout="style.color='black'">2. red.</P>
<P onmouseover="style.color='blue'" onmouseout="style.color='black'">3. red.</P>
</body>
</html>
DOM/Primjer11_2 – DOM
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin12Izgradnja Web aplikacija - FOI
DOM – primjer 3
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>FOI - Programiranje za Web : JavaScript - Primjer broj 11_3</title></head>
<script language="JavaScript">
<!--
function postavi()
{
for (e=0;e<document.all.length;e++)
if (document.all[e].tagName=='P') {
document.all[e].attachEvent('onmouseover', over);
document.all[e].attachEvent('onmouseout', out);
}
}
function over() {
event.srcElement.style.color='red';
}
function out() {
event.srcElement.style.color='black';
}
// -->
</script>
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin13Izgradnja Web aplikacija - FOI
DOM – primjer 3/1.
<body onload="postavi();">
<h1>JavaScript skripte: Primjer broj 11_3</h1>
<p>Prvi red.</p>
<p>Drugi red.</p>
<p>Treći red.</p>
</body>
</html>
DOM/Primjer11_3 – DOM
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin14Izgradnja Web aplikacija - FOI
DOM – primjer 4
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>FOI - Programiranje za Web : JavaScript - Primjer broj 11_4</title></head>
<script language="JavaScript">
<!--
<!--
sp=100;
function scroll()
{
if (sp<-250) sp=100;
sp--;
document.all.sctext.style.top=sp;
setTimeout('scroll()',50);
}
// -->
</script>
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin15Izgradnja Web aplikacija - FOI
DOM – primjer 4/1.
<body onload="scroll();">
<h1>JavaScript skripte: Primjer broj 11_4</h1>
<div style="position:absolute;overflow:hidden;top:100;left:100;width:200;
height:100;background-color:yellow">
<span id="sctext" style="position:relative;top:100;left:0;width:200;height:100">
Na studentskim izborima, koji se održavaju svake druge godine, studenti svake
studijske godine matičnog fakulteta
biraju svog predstavnika u Fakultetsko vijeće.
Fakultetsko vijeće je stručno vijeće nekog fakulteta koje, izmedu ostalog
predlaže nove obrazovne, znanstvene i
stručne programe, te daje mišljenje o prijedlozima novih nastavnih i obrazovnih
programa na sveučilištu.
</span>
</div>
</body>
</html>
DOM/Primjer11_4 – DOM
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin16Izgradnja Web aplikacija - FOI
DOM – primjer 5
<style type=text/css>
.OK { background: white; color: black }
.krivo { background: red; color: black }
</style>
<body>
<h1>JavaScript skripte: Primjer broj 11_5</h1>
<script language=“JavaScript”>
<!--
function provjeri(pForma)
{
if(pForma.naziv.value.length < 5)
{
alert("Niste upisali dovoljno znakova!");
pForma.naziv.className="krivo";
pForma.naziv.focus();
return false;
}
else
{
alert("OK!");
pForma.naziv.className="OK";
return true;
}
}
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin17Izgradnja Web aplikacija - FOI
DOM – primjer 5/1.
<form name=forma onsubmit="return provjeri(this);">
Naziv tvrtke: <input name=“naziv” class=“OK” size=“30” maxlength=“30”><br>
<input type=“submit” value=“Upiši”>
</form>
</body>
</html>
DOM/Primjer11_5 – DOM
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin18Izgradnja Web aplikacija - FOI
DOM – primjer 6
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>FOI - Programiranje za Web : JavaScript - Primjer broj 11_6</title></head>
<script language="JavaScript">
<!--
function prikaziSlike()
{
i=0;
for(j=0;j < document.all.slika.length;j++) // svi objekti s ID=slika
{
with(document.all.slika[j])
{
src = slikaN[i]; // naziv slike
i = (i + 1)%slikaN.length; // indeks prema nazivima slika
style.visibility = "visible"; // postavi vidljivim
style.position = "absolute"; // pozicija apsolutna
style.top = Math.round(Math.random() * maxHeight); // gornja koordinata
style.left = Math.round(Math.random() * maxWidth); // lijeva koordinata
}
}
}
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin19Izgradnja Web aplikacija - FOI
DOM – primjer 6/1.
function padajStart()
{
for(j=0;j < document.all.slika.length;j++) // svi objekti s ID=slika
start(document.all.slika[j]);
timer = setTimeout("padajStart()",100); // postavi timer 1/10 sek
}
function start(obj)
{
top1 = parseInt(obj.style.top);
if(top1 == screen.availHeight)
top1 = 0;
obj.style.top = top1 + 1;
}
function padajStop()
{
clearTimeout(timer); // zaustavi timer
}
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin20Izgradnja Web aplikacija - FOI
DOM – primjer 6/2.
function aktivirajVeze()
{
i=0;
for(j=0;j < document.all.text.length;j++) // svi objekti s ID=text
{
with(document.all.text[j])
{
href = slikaN[i]; // postavljanje veze
i = (i + 1)%slikaN.length;
}
}
}
function aktivirajMis()
{
i=0;
for(j=0;j < document.all.text.length;j++) // svi objekti s ID=text
{
with(document.all.text[j])
{
onclick = misKlik; // postavljenje funkcije rukovatelja dogadaja
onmouseover = misNa; // postavljenje funkcije rukovatelja dogadaja
onmouseout = misSa; // postavljenje funkcije rukovatelja dogadaja
i = (i + 1)%slikaN.length;
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin21Izgradnja Web aplikacija - FOI
DOM – primjer 6/3.
}
}
}
function misKlik() // aktivira se kod dogadaja onclik
{
alert(this.innerText);
dodajMenu(this.innerText);
}
function misNa() // aktivira se kod dogadaja onmouseover
{
this.className = "aktiv"; // postavljanje naziva CSS klase
this.style.cursor = "hand"; // postavljenje kursora
window.status = "Iznad: " + this.innerText;
}
function misSa() { // aktivira se kod dogadaja onmouseout
this.className = "normal"; // postavljanje naziva CSS klase
window.status = "";
}
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin22Izgradnja Web aplikacija - FOI
DOM – primjer 6/4.
function dodajMenu(pText)
{
obj = document.getElementById("menu"); // objekti s ID=izbornik
novaO = new Option(pText, obj.length); // nova opcija izbornika
eval("obj.options[obj.length] = novaO;");// evaluacija koda
obj.options.selectedIndex = obj.options.length - 1;
// postavljanje izbora na posljednjeg
}
DOM/Primjer11_6 – DOM
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin23Izgradnja Web aplikacija - FOI
Korištena i dodatna literatura
http://www.angelfire.com/tx4/cus/notes/javascript.html
http://dir.yahoo.com/Computers_and_Internet/Programming_and_Develop
ment/Languages/JavaScript/
http://webreference.com/programming/javascript/
http://www.angelfire.com/tx4/cus/notes/javascript.html
http://javascript.internet.com/
http://www.jsworkshop.com/js15examples.html
http://www.w3.org/TR/REC-DOM-Level-1/
http://www.w3.org/TR/DOM-Level-2-Core
http://www.w3.org/TR/DOM-Level-2-Style/
http://www.people.fas.harvard.edu/~dbaron/dom/test/
http://www.oasis-open.org/cover/dom.html
http://www.xs4all.nl/~ppk/js/index.html?version5.html