Naršyklės objektinis modelis. Window objektas

Šiame skyrelyje aprašysime Microsoft Internet Explorer naršyklės objektinį modelį. Objektinis modelis – tarpusavyje susietų objektų rinkinys, leidžiančių prieiti tinklalapio turinį bei naršyklės funkcijas. Reikia tik atminti, kad prie tinklalapio turinio galima prieiti tik baigus įkelti visą tinklalapį į naršyklę.
Svarbiausias naršyklės objektas yra window. Jisai apima (t.y. jį sudaro) visus kitus naršyklės objektus. Kiekvienas naršyklės langas – tai atskiras window objektas. Hierarchinę window objekto struktūrą galime pavaizduoti tokia schema:
Objektinis programavimas window Struktūra
Šioje schemoje pilkame fone surašyti kiti objektai, balti – elementų rinkiniai. Rinkinys – duomenų struktūra, primenanti masyvą, vartojamą kitose programavimo kalbose. Tokiame masyve kiekvienas elementas priklauso struktūrai ir yra susietas su kitais šio masyvo elementais. Pavyzdžiui, tarkime, kad ekranas padalintas į kelis langus (frames), kurie pavadinti taip: pagrindinis, papild1, papild2:

Pagrindinis papild1
papild2
Tuomet, pavyzdžiui, pagrindinį langą galima nurodyti taip:

window.frames(”Pagrindinis”);

arba

window.frames(0);

Rinkiniuose visi elementai pradedami numeruoti nuo nulio. Objekto eilės numeris priklauso nuo jo fizinės padėties HTML dokumente: mūsų nagrinėtu atveju nuliniu bus laikomas pirmasis elementas, aprašytas <Frameset> direktyva.

Objekto window savybės

Savybė Paaiškinimas
window.parent Sugrąžinama į langą, sukūrusį aktyvųjį langą
window.self Grąžinama nuoroda į aktyvųjį langa
window.top Grąžinama nuoroda į pagrindinį langą
window.name Grąžinamas lango pavadinimas, nurodytas direktyva <FrameSet>
window.opener Sugrąžinama į aktyviojo lango sukurtą langą
window.closed Praneša, jei langas uždarytas
window.status Tekstas, rodomas naršyklės būsenos eilutėje
window.defaultStatus Numatytasis naršyklės būsenos eilutės tekstas
window.returnValue Leidžia įvykiui arba dialoginiam skydeliui grąžinti rezultato reikšmę
window.clientInformation Grąžinama nuoroda į navigator objektą
window.document Grąžinama nuoroda į document objektą
window.event Grąžinama nuoroda į globalųjį objektą event
window.history Grąžinama nuoroda į history objektą
window.location Grąžinama nuoroda į location objektą
window.navigator Grąžinama nuoroda į navigator objektą
window.screen Grąžinama nuoroda į globalųjį objektą screen


Savybės opener ir closed dažniausiai vartojamos kuriant naujus langus, status ir defaultStatus – būsenos eilutės informacijai nurodyti. Pavyzdžiui, norėdami, kad būsenos eilutėje būtų rodomas sveikinimo tekstas, galime šiai savybei priskirti tokią reikšmę:

window.status=”Sveiki atvykę į mano tinklalapį”

Objekto window metodai

Metodas Aprašymas
open Atveria naują naršyklės langą
close Užveria aktyvųjį naršyklės langą
showHelp Pateikia dialoginį pagalbos langą
showModalDialog Pateikia naują modalinį dialoginį langą
alert Pateikiamas pranešimo skydelis
prompt Pateikia skydelį, kuriame nurodyta, kokios informacijos reikia ir yra tekstinis laukelis tai informacijai įrašyti
confirm Pateikia patvirtinimo reikalaujantį skydelį, kuriame yra mygtukai OK ir Cancel
navigate Atidaro naują naršyklės langą, kuriame bus įkeliamas nurodytu adresu (URL) esantis tinklalapis ar kitas resursas
blur Pašalina tinklalapį iš akiračio; atitinkamas įvykis onblur
focus Perkelia tinklalapį į akiratį; atitinkamas įvykis onfocus
scrool Paslenka tinklalapio turinį į nurodytą vietą (nurodžius horizontalią ir vertikalią pozicijas)
setInterval Nurodomas laiko intervalas, kas kiek milisekundžių turi periodiškai pasileidinėti procedūra
setTimeout Nustato laiką, kuriam praėjus po tinklalapio įkėlimo bus paleidžiama programa
clearInterval Panaikina intervalą, nurodytą setInterval metodu
clearTimeout Atšaukia delsimą, nurodytą setTimeout metodu
execScript Vykdo script programą; nenurodžius kalbos, MS IE laikys, kad tai JScript


Toliau paaiškinsime kai kuriuos metodus išsamiau.

Naujų naršyklės langų atvėrimas.

Naujiems langams atverti vartojamas open metodas. Pavyzdžiui, norint atverti langą, kuriame būtų rodomas „Verslo žinių“ laikraštis, turime įrašyti tokį sakinį:

window.open(http://www.vz.lt)

Šis metodas turi keletą papildomų parametrų, leidžiančių nurodyti konkrečius lango duomenis. Window metodo formalioji sintaksė gali būti nurodoma taip:

NaujasLangas=window.open(URL, vardas, požymiai, keitimas);

Čia URL rodysime naujame lange dokumento adresas (nenurodžius nieko – bus sukuriamas tuščias langas: about:blank),
vardas – eilutė, įvardijanti langą ir kuri gali būti vartojama kaip <Form> ir <A> direktyvų target parametro reikšmė,
požymiai – eilutė, nurodanti naujojo lango parametrus; galimos parametrų reikšmės:

Parametras Galimos reikšmės Paaiškinimas
fullscreen yes-no-1-0 Nurodoma, ar langas turi būti atveriamas per visą ekraną ar kaip įprastas. Nenurodžius šio parametro, atveriamas įprastas langas
channelmode yes-no-1-0 Nurodoma, ar rodyti kanalų juostas
toolbar yes-no-1-0 Nurodoma, ar rodyti priemonių juostą
location yes-no-1-0 Nurodoma, ar rodyti adreso langelį
directories yes-no-1-0 Nurodoma, ar rodyti mygtukų aplankams nurodyti juostą
status yes-no-1-0 Nurodoma, ar rodyti būsenos juostą
menubar yes-no-1-0 Nurodoma, ar rodyti meniu juostą
scroolbars yes-no-1-0 Nurodoma, ar rodyti slinkties juostas
resizable yes-no-1-0 Nurodoma, ar leidžiama keisti lango matmenis
width Skaičius Nurodomas lango plotis taškais (pixel); minimalus plotis – 100 taškų
height Skaičius Nurodomas lango aukštis taškais (pixel); minimalus aukštis – 100 taškų
top Skaičius Nurodoma lango viršutiniojo kairiojo kampo vertikalioji koordinatė
left Skaičius Nurodoma lango viršutiniojo kairiojo kampo horizontalioji koordinatė


keitimas – nurodo, ar atveriamas langas pakeis aktyvųjį langą žurnale (history) ar ne.
Pavyzdžiui, galima nurodyti atverti tokį langą:

window.open(http://www.lnb.lt, ”biblioteka”, ”fullscreen=1, toolbar=1, menubar=0, location=0, resizable=no”); 

Šia komanda bus atveriamas Lietuvos nacionalinės M. Mažvydo bibliotekos tinklalapis. Langui bus suteiktas vardas „biblioteka“, langas užims visą ekraną, bus rodoma priemonių juosta, nebus meniu juostos bei bus neleidžiama keisti lango matmenų.

Dialoginiai skydeliai.

Su kai kuriais dialoginiais skydeliais jau esame susipažinę. Ankstesniuose pavyzdžiuose vartojome porą window objekto metodų: alert ir prompt. Paprastų pranešimų (alert) pavyzdžių jau buvo pateikta nemažai, tad dabar pateiksime keletą kitų.
Pranešimą-užklausą pradiniams duomenims įvesti galima pateikti pasinaudojant prompt metodu:

S = prompt("Koks miestas yra Lietuvos sostinė: ", "");

Šiuo atveju ekrane bus pateikiamas toks skydelis:
Javascript pranešimas
Įvedus prašomą informaciją ir spragtelėjus OK mygtuką, kintamajam S bus priskirta įvestoji reikšmė. Spragtelėjus Cancel mygtuką, kintamojo S reikšmė taps null.
Prašymą patvirtinti kokią nors informaciją galima nurodyti confirm metodu:

S = confirm("Ar vakar lijo?");

Šį kartą ekrane bus pateikiamas toks skydelis:
JavaScript confirm dialog
Įvedus prašomą informaciją ir spragtelėjus OK mygtuką, kintamajam S bus priskirta true reikšmė, spragtelėjus Cancel mygtuką – false.

Modaliniai dialoginiai skydeliai.

Modaliniams dialoginiams skydeliams sukurti pasinaudojama showModalDialog metodu. Jo sintaksė yra tokia:

Dial=window.showModalDialog(URL, argumentai,požymiai);

Čia URL dialoginio skydelio adresas, privaloma jį visuomet nurodyti
argumentai – būtinų argumentų sąrašas; argumentai gali būti perduodami window objekto dialogArguments savybe.
požymiai – nebūtinų parametrų sąrašas. Galimos parametrų reikšmės:

Parametras Galimos reikšmės Paaiškinimas
dialogWidth Skaičius Dialoginio skydelio plotis
dialogHeight Skaičius Dialoginio skydelio aukštis
dialogTop Skaičius Dialoginio skydelio viršutiniojo kairiojo kampo vertikalioji koordinatė
dialogLeft Skaičius Dialoginio skydelio viršutiniojo kairiojo kampo horizontalioji koordinatė
center yes-no-1-0 Nurodoma, ar pateikti dialoginį skydelį ekrano centre


Modaliniai dialoginiai skydeliai daugiausia vartojami tiksliems duomenims įvesti arba sudėtingesniam dialogui, negu galima padaryti naudojant alert bei prompt metodus. Pateiksime tinklalapį slaptažodžiui įvesti.

<Html>
<Head>
<title>Slaptažodis </title>
</Head>
<body bgcolor=yellow>
<script language="JavaScript"> 
function KoksSlapt() { 
  slapt=window.showModalDialog("mod_dial.html", null, "dialogHeight=5cm; dialogWidth=7cm;center=yes")
}
</script>
<form>
   <input type="button" value="Slaptažodis" onClick="KoksSlapt()">
</form>
</body>
</HTML>

Šiame tinklalapyje nurodytas mod_dial.html tinklalapis gali būti toks:

<Html>
<Head>
<title>Slaptažodis </title>
</Head>
<body bgcolor=magenta>
<script language="JavaScript"> 
function DarykGerai(){ 
  window.returnValue=window.document.all.slapt.value;
  window.close()
}
</script>
<form>
Slaptažodis:<input type="password" name="slapt">
<input type="button"value="Gerai" onClick="DarykGerai()">
</form>
</body>
</HTML>

Įkėlus pirmąjį tinklalapį į naršyklę ir spragtelėjus mygtuką „Slaptažodis“, ekrane bus tokia situacija:

Įvedus slaptažodį ir spragtelėjus mygtuką „Gerai“ mažasis langas užsivers, o įvestas slaptažodis bus perduotas į pagrindinį tinklalapį.


Autorius: Aidas Žandaris