dom - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/hci/html_css_js_predavanja/dom.pdf · '20 .dnr gd...

19
DOM Document Object Model

Upload: others

Post on 09-Jul-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

DOM

Document Object Model

Page 2: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

DOM

Kako da browser kreira model HTML stranice Kako Javascript da pristupi i promeni sadržaj

straniceDOM nije ni deo HTML-a, ni deo Javascript-aZaseban set pravilaSastoji se od objekataSvaki objekat predstavlja deo učitane

straniceDOM definiše i metode i osobine (property)

koje se koriste za ažuriranje objekata

Page 3: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

DOM tree

Na vrhu je document objekat koji predstavlja stranicu, a njegova deca predstavljaju elemente na stranici

Page 4: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Document objekat

Propertydocument.titledocument.lastModifieddocument.URLdocument.domainMethoddocument.write()document.getElementByld()document.querySelectorAll()document.createElement()document.createTextNode()

Page 5: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Pristup elementima - metode

getElementById() querySelector ()

getElementsByClassName() querySelectorAll() getElementsByTagName()

parentNode previousSibling/nextSibling firstChild/lastChild

Page 6: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

ažuriranje

nodeValue – property - omogućava pristup sadržaju čvora u stablu sa tekstualnim sadržajem

innerHTML – property – omogućava pristup deci i tekstualnom sadržaju

textContent – ažuriranje i skupljanje teksta čvora i njegove dece

Page 7: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

ažuriranje

<li id=“one”><em>fresh</em>figs</li>

figs

fresh figs <em>fresh</em>figs document.getElementById(‘one’). innerHTML

Page 8: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

DOM manipulation

createElement()– kreira element kao promenljivu

createTextNode()– kreira tekstualni čvor kao promenljivu

appendChild()- Specidicira kom elementu da se doda kreirani čvor- kreirani čvor dodaje u DOM stablo

Page 9: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

DOM manipulation

var btn = document.createElement("BUTTON");var t = document.createTextNode("CLICK ME");btn.appendChild(t);document.body.appendChild(btn);

Page 10: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

DOM manipulation

hasAttribute() getAttribute() setAttribute() removeAttribute()

Page 11: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Document.write()

document.write() Jednostavan način da se doda na stranici sadržaj koji nije bio

u originalnom kodu stranice Nije preporučljivo za korišćenje Jednostavno kao primer početnicima kako mogu da dodaju

sadržaj na stranicu Mana je da radi samo kada se stranica u potpunosti učita Može da se dogodi da ne doda sadržaj ili da ga prepiše preko

cele stranice Retko se koristi

Page 12: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Events

Page 13: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Events

Kako pokrenuti javascript kod iz dogadjaja1. Selektujemo element (čvor) za koji želimo da se

pokrene odgovarajući kod

2. Odredimo na koji događaj želimo reakciju

3. Dodamo kod koji opisuje šta želimo da odradimo nakon događaja

Page 14: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Events

Kako pokrenuti javascript kod iz dogadjaja Event handlers – koja funkcija se poziva kada je

događaj pokrenut

Page 15: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Events

Event listeners Noviji način obrade događaja, mogu da obave više od jedne funkcije, Starije verzije browser-a ih ne podržavaju (>=IE8)

Page 16: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Events

Šta ako je potrebno da se proslede argumenti ? Annonymus function

Page 17: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Events

Šta ako je IE verzija 8 i manje Umesto addEventListener() koristi se attachEvent()

Page 18: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Events

Event Flow ( False – bubbling, true – capturing) default je false

Page 19: DOM - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/HCI/HTML_CSS_JS_predavanja/DOM.pdf · '20 .dnr gd eurzvhu nuhlud prgho +70/ vwudqlfh .dnr -dydvfulsw gd sulvwxsl lsurphql vdguçdm vwudqlfh

Events

Kreiranje listener-a za veliki broj događaja može dosta da uspori stranicu i iskoristi veliki deo resursa

Vrši se delgacija event listener-a na roditelja