e-gradiva     HTML CSS JavaScript Načrtovanje    
  logotip  
SERŠ Maribor Iskanje Primeri

Predmet window

JavaScript omogoča kreiranje in upravljanje z okni in z določeno vsebino datotek HTML. Okno (window) je v hierarhiji uporabniške strani JavaScript najvišji (top-level) predmet. Ves HTML in tudi koda JavaScript se nahaja v predmetu Window.

Predmet window predstavlja samo okno brskalnika. Izgled okna je običajno standardno okno nekega operacijskega sistema z naslovno vrstico, orodno vrstico, statusno vrstico. Predmet se ustvari samodejno takoj, ko odpremo novo okno brskalnika. Do vseh lastnosti in postopkov okna, ki pripada nekemu dokumentu se lahko dostopa neposredno, tako kot do lastnosti in postopkov globalnega predmeta. Do okna, ki pripada kakšnemu drugemu odprtemu dokumentu (na primer v drugem oknu brskalnika) pa moramo dostopati preko ustreznih lastnosti.

Predmet window vsebuje tudi druge predmete in tudi sam predmet window. Celotna referenca postopka write() je tako window.document.write(). Toda, ker je celotna aktivnost omejena na okno, se lahko v referenci window izpusti. Med lastnostmi okna je tudi self, ki je sinonim za okno samo. Nekatere postopke se lažje tvori z uporabo te lastnosti.

Med lastnostmi tega predmeta je tudi predmet window sam, ki predstavlja okno samo. Sliši se malo čudno, vendar ni nenavadno za predmetno orientirana okolja. Novo okno se lahko odpre s pomočjo kode JavaScript. Ko se zažene brskalnik, se običajno odpre okno. To okno je veljaven predmet window, četudi je okno prazno. Skripti lahko nadzorujejo dogajanje v odprtem oknu. Lahko se spremeni položaj, velikost okna, statusna vrstica, naslovna vrstica tudi sama vsebina... Mnogo več možnosti pri vsebini okna nam nudi postopek generiranja novega okna s skripti - postopek window.open().

Sestavni del tega predmeta je tudi troje pogovornih oken: sporočilo alert, potrditev confirm in vprašanje prompt. Za uporabnike spletnih strani je pogosto uporaba le-teh moteča, zato se jim izogibajte pri izdelavi spletnih strani. Ko se enkrat odpre pogovorno okno, se ne more v brskalniku dogajati nič, dokler se pogovorno okno ne zapre.

Lastnosti

Lastnost self
Lastnost je refrenca ali sinomim za trenutno aktivno okno. Naslednji zapisi predstavljajo referenco na isto lastnost:
window.document.title
self.document.title
document.title
Lastnost top
Referenca ali sinonim za najvišje okno (okno brskalnika) v DOM. Če okno ni razdeljeno na okvirje, je to okno samo.
Lastnost parent
Starš trenutnega okna. Ta lastnost je smiselna samo, če je okno sestavljeno iz okvirjev. Njegov starš je okno ali okvir, ki opisuje razdelitev na okvirje.
Lastnost opener
V primeru uporabe postopka window.open(), obstaja med novim oknom in njegovim staršem tanka povezava, ki se skriva v lastnosti novega okna opener. Ta lastnost vrne ime okna, ki je odprlo novo okno.
Lastnost name
Ime okna. Uporablja se za nastavitev ali za branje imena.
Lastnost location
Opisuje naslov (URL) odprtega dokumenta. Vrednost je vedno predmet location.
Lastnost history
Okno vsebuje predmet history. To je zbirka podrobnosti o naslovih (URL), preko katerih je uporabnik prišel do te strani.
Lastnost document
Opisuje predmet dokument, ki je prikazan v oknu. Vsako okno vsebuje en dokument. Za zamenjajo dokumenta se uporabi predmet document.
Lastnost status[="niz"]
Statusna vrstica je na dnu brskanika. Niz, izpisan v statusni vrstici, se običajno uporablja za izpis povezav in sporočil. Lahko pa se ga začasno spremeni s skripti.
Lastnost defaultStatus[="niz"]
Privzet niz, izpisan v statusni vrstici. Ta se izpiše v statusno vrstico, ko v njen ni ničesar drugega, npr. povezave. Privzeta vrednost je prazen niz. Mnogi dogodki začasno spreminjajo napis v statusni vrstici, lahko pa se to naredi s skiptom z window.status. Običajno se ta vrednost dolodeli v povezavi z dogodkomonload.
Lastnost closed
Onkno je bilo kreirano s postopkom window.open. Logična vrednost true pove, če bilo je okno zaprto ali na zahtevo uporabnika ali s skriptom.
Lastnost pageXOffset/pageYOffset
Ta lastnost vrne položaj X in Y trenutnega okna v odvisnosti od levega zgornjega kota vidnega polja.
Lastnost statusbar[.visible = true/false]
Lastnost obravnava brskalnikovo statusno vrstico. Statusna vrstica ima svojo lastnost visible , privzeta vrednost je true (vidna), lahko pa se jo spremeni na false (skrita).
Lastnost toolbar[.visible = true/false]
Lastnost vrne vrednost logično vrednost, ki je določena z brskalnikovo orodno vrstico. Privzeta vrednost je true (vidna), lahko pa se jo spremeni na false (skrita) in to samo preden se okno odpre in samo s pravico UniversalBrowserWrite.
Lastnost window
Okno vsebuje predmet window

Postopki

Postopek alert("sporočilo")
Postopek prikaže opozorilno okno z danim sporočilom. Okno ima gumbek OK. Ko se okence odpre, se ne more izvajati nobena druga aplikacija. Uporabnik mora zapreti okno, da lahko brskalnik nadaljuje z delom. Pararameter postopka je lahko katerega koli tipa. Zato se lahko uporablja za preverjanje delovanja skriptov. Na določenem mesto se napiše postopek z želeno spremenljivko (ki je lahko celo predmet) in brskanik bo na tem mestu ustavil izvajanje skripta.
Postopek confirm("vprašanje")
Prikaže potrditveno okno z danim sporočilom ali vprašanjem in gumboma OK in Cancel. Počaka, da uporabnik odgovori. Vrne true, če je uporabnik pritisnil gumb za potrditev, sicer pa false.
Postopek prompt("vprašanje", "odgovor")
Prikaže vnosno okno z danim vprašanjem in poljem za vnos odgovora, kjer je že lahko vpisan privzet odgovor. Ta odgovor lahko uporabnik spremeni, nato pa odgovori pritrdilno (Postopek vrne vpisani odgovor), ali pa prekliče vnos podatka (postopek vrne null). Tip podatka je vedno string. Za spremembo tipa se lahko uporabi npr. postopke parseInt() in parseFloat(). Za preprečitev vrnitve null, je mogoče za privzeti odgovor napisati prazen niz "".
Postopek setTimeout("ukazi ali klic funcije", ms [, argument0, argument1,...])
Postopek zadrži izvajanje ukaza/ov ali funkcije za določeno število milisekund. Ukaz mora biti podan kot zaporedje stavkov, zapisanih v nizu. Postopek vrne oznako, ki jo potrebujemo, če se želi kasneje preklicati izvršitev. Ko se postopek pokliče, se izvajanje programa nadaljuje takoj, dani ukaz pa se bo izvršil vzporedno, ko bo napočil čas za to. Natančnost intervala pod 100(ms) je vprašljiva, saj je potreben določen čas za prikaz dokumenta. Ime funkcije mora biti v narekovajih in ne sme imeti argumetov. Argumente, če se le da ne navajajmo.
Postopek clearTimeout(oznaka)
Prekliče izvajanje aktivnosti, ki je klicano z zakasnitvijo s postopkom setTimeout(). To je mogoče le, če se izvajanje ukaza še ni pričelo. Za parameter je potrebno dodati ime, ki se jo dobi pri njeni nastavitvi.
Postopek setInterval("ukazi ali klic funcije", ms [, argument0, argument1,...] )
Postopek kliče vsakih ms milisekund izvrši dani ukaz/ukaze ali funkcijo. Ukaz mora biti podan kot zaporedje stavkov, zapisanih v nizu. Postopek vrne oznako ure, ki jo potrebujemo, če bomo kasneje želeli preklicati nastavitev. Ko postopek pokličemo, se izvajanje programa takoj nadaljuje, dani ukaz pa se bo izvršil vzporedno, ko bo napočil čas za to. Natančnost intervala pod 100(ms) je vprašljiva, saj je potreben določen čas za prikaz dokumenta. Ime funkcije mora biti v narekovajih in ne sme imeti argumetov. Argumente, če se le da ne navajajmo.
Postopek clearInterval(oznaka)
Prekliče ponavljanje postoka, ki je bil sprožen s postopkom setInterval. Na strani se lahko izvaja več aktivnosti, ki so bili sproženi s tem postopki, zato ima vsak svojo oznako. Za parameter ji moramo dati oznako ure, ki smo jo dobili pri njeni nastavitvi.
Postopek open(url, ime, nastavitve)
Postopek z odpiranjem novih oken nudi razvijalcem spletnih strani mnogo možnosti. V novem oknu se prikaže vsebina spletne strani, katere naslov (URL) je prvi parameter. Če je ta parameter prazen niz, odpre novo prazno okno. Drugi parameter določa ime okna, preko katerega lahko dostopamo do njega. Ne sme se ga zamenjati z URL ali naslovom dokumenta. Za ime veljajo enaka pravila kot za imena spremenljiv v JavaScript. Tretji parameter, je niz, ki vsebuje seznam nastavitev za novo okno. Posamezne nastavitve v nizu ločimo z vejico. S temi nastavitvami lahko določamo, kateri deli okna naj se prikažejo (menubar, toolbar, location, directories, status, scrollbars), kako veliko naj bo okno (width, height) ter ali mu lahko velikost spremenimo (resizable). Pri logičnih postopekih je dovolj napisati samo ime nastavitve (to pomeni vklopljeno), lahko pa jim damo vrednost 0, 1, yes ali no, true ali false; pri številskih postopkih pa je potrebno nastavitvi dati številsko vrednost v pikslih.
→ podrobnosti
Postopek close()
Zapre okno. Če ni navedeno ime okna, postopek zapre trenutno aktivno okno. Okno se samo zapre samo, če se odpre z uporabo postopka open(), v nasprotnem primeru se pred tem odpre potrditveno okno. Torej okno se zapre brez potrditve samo v primeru, da je dolžina zgodovine 1. Možno je zapreti otroka ali starša trenutnega okna.
Postopek moveTo(x, y)
Postopek določa položaj okna na ekranu. Parametra določata absolutne koordinate v pikslih novega položaja od leve zgornje točke na robu ekrana. Postopek moveTo(0, 0) postavi okno v zgornji levi rob ekrana. Okno se lahko postavi izven ekrana, kar lahko povzroči težave. Ne obstaja postopek, ki bi okno vrnil na prejšnji položaj. V okolju windows si lahko pomagamo tako, da okno minimiramo in ga nato obnovimo/maksimiramo.
Postopek moveBy(dx, dy)
Spremeni položaj okna. Parametra določata spremembo relativnih koordinat v pikslih glede na levo zgornjo točko na robu ekrana. Negativne vrednosti pomenijo premik v levo in navzgor. Okno se lahko postavi izven ekrana, kar lahko povzroči težave. Ne obstaja postopek, ki bi okno vrnil na prejšnji položaj. V okolju windows si lahko pomagamo tako, da okno minimiramo in ga nato obnovimo/maksimiramo.
Postopek resizeTo(širina, višina)
Postopek spremeni velikost okna. Parametra določata novo velikost zunanjega roba okna. Navesti je potrebno oba parametra. Manjkajoči parameter pomeni vrednost 0. Pod določeno vrednost okna ni mogoče zmanjšati.
Postopek resizeBy(širina, višina)
Postopek spremeni velikost okna. Parametra določata spremembo širine in višine glede na trenutno velikost. Navesti je potrebno oba parametra. Manjkajoči parameter pomeni vrednost 0. Pod določeno vrednost okna ni mogoče zmanjšati.
Postopek scrollTo(x, y)
Postopek nadomešča ročno premikanje drsnikov. Absolutno premakne vsebino okna tako, da dana točka vsebine pride v levi zgornji vogal okna. Postopek je posebno uporaben, če drsniki niso prikazani.
Postopek scrollBy(dx, dy)
Relativno premakne vsebino okna za dano število pik vodoravno in navpično. Negativne vrednosti so dovoljene, če je mogoč premik levo in navzgor. Postopek je posebno uporaben, če drsniki niso prikazani.
Postopek focus()
Postopek aktivira okno in ga postavi ga v ospredje. V primeru, da je okno že odprto in vanj iz drugega dokumenta vnašamo podatke, smo lahko zmedeni, saj na ekranu ne vidimo ničesar. Problem je lahko v tem, da okno je odprto, vendar je v ozadju. Ne pozabimo ga s tem postopkom postaviti v ospredje.
Postopek blur()
Deaktivira okno in ga postavi v ozadje. Četudi se okna ne vidi, je še vedno odprto.
Postopek captureEvent(tip dogodka)
Postopek lovi določen dogodek. Več od predmetu Event

SERŠ Maribor : Strokovna gimnazija : 2004 : Jure Štern