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:
Š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 |
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:
Į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:
Į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
Discussion