13./18.11. Skup integrisanih objekata: DOM / BOM / Globalni JS objekti - PROUČITI KOD KUĆE
Web browser u sebi sadrži skup integrisanih objekata pomoću kojih se može pristupiti strukturi HTML stranice iz JavaScript programa. Ove objekte možemo podeliti u 3 grupe:
- BOM - Browser Object Model
- DOM - Document Object Model
- Globalni JavaScript objekti

BOM (Browser Object Model)
BOM sadrži objekte koji predstavljaju prozor web browser-a, odnosno tab koji je trenutno aktivan. Globalni objekat i ujedno objekat koji predstavlja prozor web browsera je objekat window.

Objekat window predstavlja prozor web browsera. Svi globalne promenljive, funkcije i JavaScript objekti automatski postaju deo objekta window.
Globalne promenljive su propertiji (svojstva) objekta window, a globalne funkcije su metode objekta window.
Browser Object Model (BOM) predstavlja niz objekata ugnježdenih u window, kojima pristupamo web browseru, ekranu, lokaciji i istoriji.
Kada se JavaScript izvršava u okruženju web browsera, dostupan mu je globalni window objekat, koji postoji za svaki tab, iframe i iskačući prozor. Sve HTML i JavaScript aktivnosti se odvijaju u okviru ovog objekta.
Klikom na obojeno područje, otvara se (ili zatvara) kratko objašnjenje:
- innerWidth, innerHeight - prikazije širinu i visinu prozora i to samo dela sa HTML stranicom
- outerWidth, outerHeight - prikazuje spoljnu širinu i visinu prozora, uključujući i toolbar i scrolbar
- pageXOffset, pageYOffset - prikazuje koliko je piksela dokument skrolovan horizontalno i vertikalno u odnosu na gornji levi ugao
- screenX, screenY - prikazuje koordinate prozora web browsera u odnosu na gornji levi ugao ekrana
- closed - za zatvoren daje vrednost True, a za otvoren False
- opener - referenca prozora iz kojeg je otvoren postojeći
- document - predstavlja trenutno učitanu HTML stranicu. Ovaj elemenat je korenski element Document Object Modela
Klikom na obojeno područje, otvara se (ili zatvara) kratko objašnjenje:
- window.alert(tekstPoruke) - prikaz pop-up poruke gde ima samo dugme za potvrdu. Prima samo jedan parametar, što je ujedno i poruka.
- window.confirm(tekstPoruke) - prikaz pop-up dijaloga sa unetim tekstom poruke. Sadrži OK i Cancel dugme.
- window.prompt(tekstPoruke,ulaznaVrednost) - prikazuje pop-up prozor u kojem se prikazuje tekst poruke i polje za unos ulazne vrednosti. Ako je ulazna vrednost definisana, ona će biti ispisana u polje za unos, a u suprotnom će to polje biti prazno. Sadrži OK i Cancel dugme.Ako se pritisne dugme OK, vrednost koja je unesena u polje za unos se prenosi kao povratna vrednost. Ako se pritisne Cancel onda se kao povratna vrednost vraća null.
- window.open(url) - otvara novi prozor (tab) sa definisanom adresom
- window.close() - zatvara prozor (aktivni tab)
- window.print() - pokreće ekran za štampanje trenutne stranice
- window.setTimeOut(imeFukcije,interval) - poziva funkciju ili izvršenje nekog izraza nakon određenog vremenskog intervala zadatog u milisekundama. Ova metoda će da se izvrši samo jednom.
- window.setInterval(imeFunkcije,interval) - poziva funkciju ili izvršenje nekog izraza nakon određenog vremenskog intervala zadatog u milisekundama. Ova metoda se izvršava u kontinuitetu sve dok se ne pozove metoda clearInterval() ili dok se prozor ne zatvori
- window.resizeTo(širina,visina) - proširuje prozor na zadatu šršnu i visinu
- window.focus() - postavlja fokus na trenutni prozor
Ukoliko želimo da na stranici prikažemo neku poruku pomoću metode alert objekta window, možemo koristiti sledeća dva potpuno ravnopravna načina:
window.alert("Dobro jutro");
// ovo je isto što i
alert("Dobro jutro");
Jedino objekat window na početku ne morate navoditi .....
DODATNI LINKOVI (proučiti kod kuće):
DOM (Document Object Model)
DOM (Document Object Model) - predstavlja zapravo hijerhijski prikaz strukture web-stranice, onako kako je vidi web browser (misli se na HTML dokument).
DOM služi za prikaz toga koji se sve elementi nalaze na web stranici i gde se tačno na njoj nalaze. Ujedno predstavlja i interfejs za programiranje (API) kojim se JavaScript programima omogućava da komuniciraju sa HTML dokumentima i njihovim elementima.
Kao što znamo od ranije, HTML se sastoji od elemenata koji predstavljaju objekte koji međusobno stoje u određenom odnosu. Postoji određena hijerarhija između HTML objekata i ona je definisana standardom koji je propisan za HTML. Ono što DOM čini izuzetno važnim jeste mogućnost da se uz pomoć nekog programskog jezika (npr. JavaScript) manipuliše njegovim elementima, tako da se njima pristupa preko DOM-a, a nakon toga radi sa njima na željeni način.
Da bismo koristili DOM u JavaScriptu, ne moramo da zadajemo nikakve specijalne pozive ili naredbe..... Dovoljno je da samo jednostavno koristimo objekte DOM-a kao i sve druge objekte JavaScripta.
Zahvaljujući DOM modelu, JavaScript može da:
- dodaje, menja ili uklanja sve HTML elemente na strani (i njihove atribute)
- menja sve CSS stilove na strani
- reaguje na sve događaje na strani
- pravi nove događaje na strani
U nastavku je primer DOM-a, nacrtan kao hijerarhijska struktura. Ceo HTML dokument i svaki element u ovoj strukturi predstavljaju objekte.

DOM predstavlja HTML dokument kao stablo čvorova (node-ova). Svaki
deo stranice (kao što su elementi, atributi i tekst) može se smatrati
čvorom (node) u tom stablu.
DOM započinje od objekta document i dalje se po hijerarhiji grana na ostale objekte koji čine određeni dokument: ovde su to html element, a nakon toga su head i body, a oni se dalje granaju na niže elemente....
Objekat document je kontejner za HTML, on je koren svih drugih čvorova HTML dokumenta. Kada se otvori prazan prozor u pretraživaču napravi se window objekat, a nakon učitavanja HTML-a u prozor nastaje document objekat (koji je inače property objekta window).
Globalni objekat document (kome možemo pristupiti i preko window.document ) predstavlja trenutno učitani dokument i služi kao pristupna tačka sadržaju stranice. Kad god otvorimo neku stranicu, web browser učita HTML, parsira ga i izgradi model učitanog dokumenta, u vidu objekta document.
Manipulacija DOM-a je menjanje svojstava web stranice i elemenata koji se nalaze na njoj, pomoću Javascripta. Svaka izmena se odmah uživo prikazuje na stranici.
Najprostiji primer DOM manipulacije bio bi menjanje boje pozadine i veličine slova cele stranice:
// primer menjanja stila tela dokumenta (body)document.body.style.background = 'yellow';document.body.style.fontSize = '1.4em';
Za složeniju DOM manipulaciju koristimo selektore - tražimo elemente na osnovu neke oznake.
Pristup elementima DOM-a
Ako želimo da pristupimo bilo kojem elementu HTML stranice, uvek moramo da pozovemo objekat document.
Za pristup i manipulaciju HTML elementima koristićemo metode, od kojih su neke navedene u nastavku:
- document.getElementByID(id) - pronađi element čiji je id naveden u zagradi
- document.getElementsByTagName(name) - pronađi sve elemente sa zadatim nazivom taga
- document.getElementsByClassName(name) - pronađi sve elemente po imenu klase
- document.querySelectorAll(selektor) - pronađi sve elemente po CSS selektoru
- document.querySelector(selektor) - pronađi prvi element po CSS selektoru
Sem metoda, koristićemo i propertije (svojstva), od kojih su neki navedeni u nastavku:
- innerHTML - menja HTML elementa (ako se nalazi sa leve strane jednakosti tada menja vrednost HTML elementa, a ako se nalazi sa desne strane jednakosti tada samo dohvata vrednost HTML elementa)
- getAttribute(imeAtributa) - dohvata atribut HTML elementa
- setAttribute(imeAtributa,novaVrednost) - menja vrednost atributa HTML elementa
- style.CSSproperty - menja CSS stil HTML elementa
Iza obojenih delova teksta su primeri (u slikama) :
Menjanje html-a (innerHTML)

Menjanje html-a (innerHTML) 2

Menjanje atributa elementa html-a

Menjanje stila HTML elementa
Pristup preko id-a
Pristup preko naziva klase
Pristup preko naziva Tag-a
Pristup preko CSS selektora.
Globalni JavaScript Objekti
U sklopu samog JavaScript-a postoje ugrađeni objekti sa svojim svojstvima i metodama, namenjeni da olakšaju programiranje. Navodimo samo neke od njih:
Ovi objekti sa “opremljeni” metodama potrebnim za rad sa odgovarajućim tipom podataka i zamišljeni su da olakšaju rad sa primitivnim tipovima. Kada se pojavi potreba za operacijom nad takvim primitivnim tipom, kompajler automatski “obmotava” prost tip u njegov “parnjak” objekat nakon čega su dostupne sve metode ugradjenog objekta.
Klikom na naziv objekta, otvoriće se stranica na W3Schools-u sa kompletnim objašnjenjem i sa primerima.
Ako želite, možete pogledati kompletnu listu svih objekata sa objašnjenjima i primerima na: https://www.w3schools.com/jsref/default.asp
Međutim, ako vam je teško tu da se snađete, u nastavku je, u manjem obimu, postavljeno: Pregled objekata ugradjenih u JavaScript
...
LINKOVI :
JS HTML DOM : https://www.w3schools.com/js/js_htmldom.asp
HTML DOM Events : https://www.w3schools.com/jsref/dom_obj_event.asp
HTML DOM Style Object: https://www.w3schools.com/jsref/dom_obj_style.asp
https://www.w3schools.com/js/exercise_js.asp?filename=exercise_js_dom_html1
...