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
Gor
e-gradiva
JavaScript
Potrditev/slika
Predmet history
SERŠ Maribor : Strokovna gimnazija
: 2004 : Jure Štern