Digitaalisen median tekniikat, s2007 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

Samankaltaiset tiedostot
Digitaalisen median tekniikat JavaScript Harri Laine 1

Digitaalisen median tekniikat JavaScript

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

Digitaalisen median tekniikat JavaScript_osa Harri Laine 1

Digitaalisen median tekniikat JavaScript_osa2

Digitaalisen median tekniikat. Luento 4: JavaScript

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Java-kielen perusteet

JavaScript alkeet. Intro Muuttujat Dialogi boxit. Metropolia 2011

Java-kielen perusteet

Sisältö. 22. Taulukot. Yleistä. Yleistä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Sisältö. 2. Taulukot. Yleistä. Yleistä

JavaScript alkeet Esimerkkikoodeja moniste 2

4. Luokan testaus ja käyttö olion kautta 4.1

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Harjoitus 2: Oppijan aktivointi ( )

15. Ohjelmoinnin tekniikkaa 15.1

ICT1TN004. Skriptikielet. Heikki Hietala

Ohjelmointiharjoituksia Arduino-ympäristössä

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

7. Näytölle tulostaminen 7.1

Internet-pohjaisen oppimisympäristön laadinta. Luento 3

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Kielioppia: toisin kuin Javassa

Internet-pohjaisen oppimisympäristön laadinta. Luento 3

11 JavaScript Mikä JavaScript on?

Osoitin ja viittaus C++:ssa

Java-kielen perusteet

Luento 5. Timo Savola. 28. huhtikuuta 2006

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

12. Monimuotoisuus 12.1

Harjoitustyö: virtuaalikone

Ehto- ja toistolauseet

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

811120P Diskreetit rakenteet

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

17. Javan omat luokat 17.1

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Java kahdessa tunnissa. Jyry Suvilehto

MITÄ JAVASCRIPT ON?...3

Java-kielen perusteita

Hohde Consulting 2004

15. Ohjelmoinnin tekniikkaa 15.1

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Tietueet. Tietueiden määrittely

(JavaScript) Aleksi O Connor DI Informaatioverkostot. Markku Laine Mediatekniikan laitos

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

17. Javan omat luokat 17.1

Palvelinpuolen ohjelmointi

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

7. Oliot ja viitteet 7.1

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ohjelmoinnin perusteet Y Python

8 Kuvat, sovelmat ja objektit

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

ITKP102 Ohjelmointi 1 (6 op)

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

5/20: Algoritmirakenteita III

Tutoriaaliläsnäoloista

Harjoitus 4 (viikko 47)

Ohjelmoinnin perusteet Y Python

Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

Aulikki Hyrskykari. JWT Hyrskykari, SIS, Tampereen yliopisto 4/23/2014

Apuja ohjelmointiin» Yleisiä virheitä

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Verkkosivujen toiminnallisuus (JavaScript)

Digitaalisen median tekniikat, k2004 HY/TKTL, palvelinohjelmointi_1 21/04/2004. Harri Laine 1. Palvelinohjelmointi. Staattinen www-sivu

1. Omat operaatiot 1.1

Ruby. Tampere University of Technology Department of Pervasive Computing TIE Principles of Programming Languages

ITKP102 Ohjelmointi 1 (6 op)

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2

Digitaalisen median tekniikat. Palvelinohjelmointi

Digitaalisen median tekniikat. Palvelinohjelmointi Harri Laine 1

Olio-ohjelmointi Syntaksikokoelma

Taulukot. Jukka Harju, Jukka Juslin

Harri Laine 1. Digitaalisen median tekniikat, s2007 HY/TKTL, palvelinohjelmointi_1. Palvelinohjelmointi

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

11. Javan valintarakenteet 11.1

Ohjelmoinnin perusteet Y Python

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Transkriptio:

JavaScript Digitaalisen median tekniikat JavaScript ent. LiveScript (Netscape), muunnelma JScript (Microsoft) yhteensopivat yksinkertaisissa asioissa, aiemmin yhteensopimattomat hiemankin edistyneemmissä nyk. ECMAScript (standardi) selaimessa toimiva tapahtumaperustainen skriptikieli ei mitään tekemistä Javan kanssa paitsi, että molempien lähtökohtana on C-kielen syntaksi 19.9.2007 Harri Laine 1 19.9.2007 Harri Laine 2 JavaScript JavaScript Tulkattava ohjelmointikieli Toimii selainympäristössä (client side) pääsy vain dokumentin dataan Ohjelmat ovat enimmäkseen erilaisiin tapahtumiin (käyttäjätoimintoihin tai dokumentin käsittelyvaiheisiin) liittyviä käsittelijöitä, joilla toteutetaan tarkistuksia esittämisen ohjausta sivun ulkoasun ja näkyvän sisällön muokkausta dokumentin näkyvään muotoon voidaan tehdä muutoksia sen jälkeen kun dokumentti on ladattu selaimeen dokumentti itsessään ei kuitenkaan muutu (js_esim1.html) dokumentin täydennystä noutamalla lisämateriaalia kommunikointia palvelimen kanssa JavaScriptillä ei voi käsitellä paikallisia tiedostoja käsitellä suoraan palvelimen tiedostoja tai tietokantoja suorittaa selaimen ulkopuolisia ohjelmia käyttää oheislaitteita suoraan (esim. kirjoitinta) 19.9.2007 Harri Laine 3 19.9.2007 Harri Laine 4 perusrakenteeltaan C:n ja Javan kaltainen case sensitive sijoitusoperaatio (=) esim. a=b; lauseet erotetaan toisistaan puolipisteellä, mutta rivin loppu toimii myös erottimena function sample( ) { var a = 1; var b = 2; var c = 3; return a + b + c; 19.9.2007 Harri Laine 5 perusrakenteeltaan C:n ja Javan kaltainen case sensitive sijoitusoperaatio (=) esim. a=b; lauseet erotetaan toisitaan puolipisteellä, mutta rivin loppu toimii myös erottimena function sample( ) { function sample( ) { var a = 1; var a = 1; var b = 2; = var b = 2; var c = 3; var c = 3; return return; a + b + c; a + b + c; Palauttaa undefined riippumatta muuttujien arvoista 19.9.2007 Harri Laine 6 Harri Laine 1

Rivin loppumisen toimiminen erottimena vaikuttaa myös siihen miten lausekkeet on kirjoitettava: teksti= ensimmäinen rivi + toinen rivi + kolmas rivi ; teksti= ensimmäinen rivi + toinen rivi + kolmas rivi ; ei toimi toimii Kommentit: /* monirivinen..*/ // yksirivinen <!-- tunnistetaan yksirivisen kommentin alkumerkiksi, mutta --> ei tunnistu loppumerkiksi, siksi koodin piilotus vanhoilta selaimilta: <script type= text/javascript > <!-- JavaScriptiä tähän väliin // --> </script> 19.9.2007 Harri Laine 7 19.9.2007 Harri Laine 8 Merkkijono ei voi jakautua monelle riville teksti= ensimmäinen rivi toinen rivi kolmas rivi ; väärin Vakiot: Numeeriset vakiot: 123 Merkkijonovakiot jonkinlaisten lainausmerkkien sisässä kunhan kummallakin puolella samanlainen merkkijono, merkkijono, `merkkijono 19.9.2007 Harri Laine 9 19.9.2007 Harri Laine 10 JavaScript tietotyypit luvut kokonaisluvut, liukuluvut 3.14, 1.2e3 = 1.2*10 3 =1200, erikoisarvo: NaN = not a number merkkijonot erikoismerkit kuten Javassa \b (backspace),\t (tab),\n (rivinvaihto),\, \, \\, \x99 (ascii merkki hexana), \u9999 (unicode) totuusarvot: true/false (laskennassa 1/0) 19.9.2007 Harri Laine 11 JavaScript tietotyypit oliot (object) JavaScript ei ole olioperustainen kieli kielessä on olion käsite, mutta ei esimerkiksi periytymistä Olio on kokoelma nimettyjä ominaisuuksia ominaisuudella on nimi ja arvo ominaisuuden arvoon viitataan joko pistenotaatiolla olio.ominaisuus (esim. image.src) tai assosiatiivisen taulukon tapaan olio[ ominaisuus ] (esim. image[ src ] ) mahdollistaa ominaisuuden nimen antamisen muuttujana Olion ominaisuuden arvona voi olla olio. Sen ominaisuuden arvoon viitataan olio.ominaisuus.ominaisuuden_ominaisuus esim document.form1.action 19.9.2007 Harri Laine 12 Harri Laine 2

JavaScript tietotyypit JavaScript tietotyypit Olioilla voi olla metodeja esim document.write( text ) Käytettäessä JavaScriptiä HTML dokumenttien käsittelyyn näkyy dokumentti ohjelmalle olioista muodostuva dokumenttipuuna (DOM, Document Object Model) tästä myöhemmin enemmän metoditkin olioiden ominaisuuksia olioiden sijoitus toimii kuten Javassa, eli sijoituksen kohde saa viitteen lähteen viittaamaan olioon Taulukot (array) taulukko on kokoelma alkioita, joihin voi viitata järjestysnumeron avulla array [index], indeksointi alkaa nollasta taulukon alkiona voi olla taulukko array [outer_index] [inner_index] abc abc[1] [2] 0 1 19.9.2007 Harri Laine 13 19.9.2007 Harri Laine 14 Muuttujanimet: alkavat kirjaimella tai _ tai $ -merkillä muut merkit ascii-merkkejä, ei operaatiosymboleja varatut sanat eivät käy muuttujina Muuttujat ovat tyypittömiä, toisin kuin esim. Javassa muuttujan tyyppiä ei määritellä esittelyssä tyyppi määräytyy käytön mukaan, jos muuttujaan sijoitetaan luku muuttuja tulee tyypiltään lukuarvoiseksi tyyppi voi muuttua automaattiset tyyppimuunnokset // arvoksi merkkijono '10' var item1 = '10'; // arvoksi merkkijono '20' var item2 = '20'; // kertolasku on nureerinen operaatio ja muuttaa tyypin 10 item1 = item1 *1; // item2 arvoksi tulee merkkijono '2010' // sillä item1 muunnetaan merkkijonoksi katenointia varten // plus-operaattori on monimerkityksinen mutta katenaatio voittaa summan item2 = item2 + item1; // item2 arvoksi tulee luku 201 // sillä jakolasku on puhtaasti numeerinen item2 = item2 / item1; 19.9.2007 Harri Laine 15 19.9.2007 Harri Laine 16 Eksplisiittiset tyyppimuunnokset parseint(string), parsefloat(string) ottavat merkkijonon alusta maksimipituisen kyseiseksi lukutyypiksi tulkittavissa olevan luvun var string1 = '3.1417 is the value of Pi'; var string2 = 'The value of Pi is 3.1417'; Not a number Int_1 = parseint(string1); // value of Int_1 is 3 Int_2 = parseint(string2); // value of Int_2 is NaN Int_3 = parsefloat(string1); // value of Int_3 is 3.1417 Int_4 = parsefloat(string2); // value of Int_4 is NaN Muuttuja esitellään var avainsanan jälkeen Samassa var-lauseessa voi esitellä monta muuttujaa Muuttujalle voidaan antaa esittelyn yhteydessä alkuarvo, ellei alkuarvoa ole annettu on muuttujan arvona undefined On sallittua esitellä muuttuja toistuvasti (potentiaalinen virhelähde) jos myöhemmässä esittelyssä asetetaan alkuarvo se korvaa aiemman arvon jos myöhemmässä esittelyssä ei anneta alkuarvoa säilyy aiempi arvo (huh!) 19.9.2007 Harri Laine 17 19.9.2007 Harri Laine 18 Harri Laine 3

// simple declaration var item1; // declaration of multiple variables var item1, item2, item3; // declaration with assignment var item1 = 7; // multiple variables with assignment var item1 = 7, item2 = 'cat', item3 = 3.17; paikalliset muuttujat funktioiden sisällä määritellyt muuttujat ovat paikallisia eli voimassa vain funktion sisällä funktioiden ulkopuolella määritellyt muuttujat ovat globaaleja globaaleja muuttujia voi käyttää funktioissa ellei paikallisesti ole määritelty samannimistä muuttujaa, jolloin käytetään sitä 19.9.2007 Harri Laine 19 19.9.2007 Harri Laine 20 var item1 = 'global'; function testthescope( ) { item1 = 'local'; document.write(item1); testthescope( ); document.write(item1); var item1 = 'global'; function testthescope( ) { var item1 = 'local'; document.write(item1); testthescope( ); document.write(item1); tulostaa: local local tulostaa: local global 19.9.2007 Harri Laine 21 19.9.2007 Harri Laine 22 JavaScript operaattorit JavaScript operaattorit JavaScriptin matemaattiset, vertailu- ja loogiset operaattorit ovat pääasiassa samat kuin Javassa merkittävimpiä eroja: merkkijonojen arvoja verrataan samoilla operaattoreilla kuin lukuja (==,!=,>, ) tavallisten vertailujen yhteydessä tehdään tyyppimuunnos, jos verrattavat ovat eri tyyppiä 1== 1, 1==true 11 < 3 mutta 11 >3 tiukkojen operaatioiden === ja!== yhteydessä ei tyyppimuunnosta ts 1!== 1 null==undefined, null==null binäärinen + on kuormitettu yhteenlasku, katenaatio jos molemmat osapuolet lukuja niin yhteenlasku muuten katenaatio typeof(muuttuja) antaa muuttujan tyypin 19.9.2007 Harri Laine 23 19.9.2007 Harri Laine 24 Harri Laine 4

JavaScript lauseet JavaScript lauseet ehtolauseet if (ehto) { lauselohko if (ehto) { lauselohko else {lauselohko if (ehto1) { lauselohko else if (ehto2) {lauselohko switch (lauseke) { case arvo: lauselohko case default: lauselohko break kuten Javassa switch (parseint(xyz)) { // useita case-vaihtoehtoja voidaan yhdistää case NaN: case 0: case 10: window.alert(xyz + ' is not a value I can work with!'); break; default: window.alert(xyz + ' is ready for processing!'); abc = somefunc(xyz); break; 19.9.2007 Harri Laine 25 19.9.2007 Harri Laine 26 JavaScript lauseet Toistolauseet while, do ja for kuten Javassa Lisäksi: for (muuttuja in objekti) {lauselohko käy läpi taulukon alkiot tai olion ominaisuudet for (elname in navigator) { document.write(elname); document.write(" = "); document.write(navigator[elname]); document.write("<br />"); JavaScript funktiot JavaScriptissä voidaan määritellä funktioita. Toisin kuin Javassa: voidaan määritellä myös irrallisia funktioita, jotka eivät ole minkään olion metodeja funktioiden paluuarvon tyyppiä ei voi määritellä funktion esittelyssä ja kutsussa voi olla eri määrä argumentteja (puuttuvilla arvo undefined, ylimääräisiin pääsee käsiksi taulukon arguments kautta) return:n perässä voidaan antaa paluuarvo, ellei anneta palautetaan undefined - taulukot ja oliot viiteparametreja, muut argumentit arvoparametreja function functionname(arguments) { statements; return; 19.9.2007 Harri Laine 27 19.9.2007 Harri Laine 28 JavaScript taulukot Taulukon luonti var taulu= new Array(); alkioiden määrää ei ole annettu taulukot ovat dynaamisia, joten alkioita voidaan sijoittaa ylärajan ulkopuolellekin taulu[0]=1; taulukkoa voi käyttää myös assosiatiivisena (vrt hashtable) taulu[ uusialkio ]=2; (jos taulukossa oli aiemmin yksi alkio (jonka indeksi siis 0), niin uusialkio assosioidaan arvoon 1. var taulu1= new Array(6); // 6 alkiota, undefined var taulu2= new Array(1,20, abc,200); tauluko jossa 4 alkiota var taulu3 = [1,20, abc,200]; ominaisuus length ilmoittaa taulukon koon, taulu3.length==4 JavaScript taulukot Taulukon koko määräytyy sen todellisen koon mukaan ei esittelyn var pikkutaulu= Array(5); pikkutaulu[200]=1; pikkutaulu.length==201 Taulukkometodeja, esim: taulukko.concat(taulukko1) liittää taulukon loppuun toisen taulukon alkiot taulukko.sort() järjestää alkiot 19.9.2007 Harri Laine 29 19.9.2007 Harri Laine 30 Harri Laine 5

Dokumentin käsittely JavaScript-ohjelma näkee dokumentin rakenteen ns. dokumenttipuuna, dokumenttipuun saattaa eri selaintoteutuksissa olla hieman erilainen, joten usein ennen puun hyödyntämistä on tutkittava mikä selain on kyseessä. Ydin 19.9.2007 Harri Laine 31 navigator 19.9.2007 Harri Laine 32 window selainikkunaan liittyviä palveluja window globaali olio, muu rakenne sen alapuolella open (uusi ikkuna), close pop-upit: alert, prompt, confirm (katso esimerkki) kymmeniä metodeja navigator tietoja selaimesta (katso esimerkki) selaimen tunnistus voidaan tehdä navigator:in tietojen perusteella usein kuitenkin kysytään jotain yleistä ominaisuutta, jonka tiedetään olevan vain jollain selaimella, esimerkiksi: if (document.all) tunnistaa uudehkon IE:n history tietoa selailureitistä voidaan esimerkiksi toteuttaa selaimen back- ja forward- näppäimet sivulle sijoitettuina kontrolleina location tietoa ladatusta dokumentista mm href-ominaisuus= nykyisen dokumentin URL, vaihtamalla tämän arvo vaihtuu ikkunan sisältö location.replace(url) vaihtaa ikkunan sisällön ja korvaa historiassa edellisen url:n uudella. Edelliseen ei siten pääse takaisin back-näppäimellä 19.9.2007 Harri Laine 33 19.9.2007 Harri Laine 34 document varsinaisen dokumentin pääolio eri tyyppiset elementit erillisissä taulukoissa anchors, applets, forms, images, links,.. rakenteita joilla voidaan käydä läpi eri tyyppisiä elementtejä childnodes= solmun lapsielementit, all (IE only) dokumentin ominaisuuksia referrer, cookie, title, attributes-taulukko, Dokumentin elementteihin voi viitata niiden name-attribuutin arvon avulla, esimerkiksi lomakkeen lomake1 kenttään k1 voi viitata document.lomake1.k1 ja sen arvoon document.lomake1.k1.value 19.9.2007 Harri Laine 35 19.9.2007 Harri Laine 36 Harri Laine 6

document metodeja, mm: open(), close(), write(string), writeln(string) navigointimetodit getelementbyid(string) id:n perusteella getelementsbytag(string) tagin perusteella getelementsbyname(string) name attribuutin perusteella tabs=document.getelementsbytag( table ); alkioihin viitataan tabs[i] tai tabs.item(i) aineiston luonti createelement(tag) createtextelement(string) arvomuutokset setattribute(name,value) 19.9.2007 Harri Laine 37 element yliluokka dokumentin elementeille kaikille yhteisiä rakenteita ja metodeja, tärkeimpiä: attributes - attribuuttitaulukko childnodes - lapsielementit id - tunniste class - elementin luokitus (class-määre) innerhtml - sisältö tageineen style - tyylimääritys JavaScriptissä tyyliattribuuteille on eri nimet kuin CSS:ssä tähän tapaan: bordertop =CSS:border-top 19.9.2007 Harri Laine 38 element metodeja getattribute(name), setattribute(name,value), hasattribute(name) getelementsbytagname(tag) JavaScript tapahtumakäsittelijät onblur Returns the event handling code for the blur event. onclick Returns the event handling code for the click event. ondblclick Returns the event handling code for the dblclick event. onfocus Returns the event handling code for the focus event. onkeydown Returns the event handling code for the keydown event. onkeypress Returns the event handling code for the keypress event. onkeyup Returns the event handling code for the keyup event. onmousedown Returns the event handling code for the mousedown event. onmousemove Returns the event handling code for the mousemove event. onmouseout Returns the event handling code for the mouseout event. onmouseover Returns the event handling code for the mouseover event. onmouseup Returns the event handling code for the mouseup event. onresize Returns the event handling code for the resize event. onload, onunload usein body elementin yhteydessä 19.9.2007 Harri Laine 39 19.9.2007 Harri Laine 40 JavaScript html-dokumentissa JavaScriptiä voidaan upottaa HTML-koodiin sekaan: koodia sisältävinä <script> - elementteinä ulkoisia tiedostoja kytkevinä <script> - elementteinä linkin kohteina tapahtumakäsittelijöinä. 19.9.2007 Harri Laine 41 JavaScript html-dokumentissa Tyypillisesti dokumentin head-osaan sisältyy: yksi <script>-elementti, jossa määritellään paikalliset funktiot ja globaalit muuttujat mahdollisesti useita <script>-elementtejä, joissa ladataan ulkoisia JavaScript-tiedostoja (nämä sisältävät tyypillisesti useilla sivuilla tarvittavia funktioita) Body-osaan voidaan laittaa: <script>-elementtejä sellaisiin kohtiin, joihin halutaan tuottaa sisältöä JavaScriptillä Linkin kohteeksi voidaan määritellä suoritettava JavaScript-koodi <a href="javascript:window.open('otherfile.html');">otherfile</a> Elementin tapahtumakäsittelijäksi voidaan antaa Javascriptkoodia <img src= kuva onclick= kehysta(); > (kehysta() on aiemmin määritelty funktio) 19.9.2007 Harri Laine 42 Harri Laine 7

JavaScript html-dokumentissa JavaScript html-dokumentissa JavaScript koodi suoritetaan siinä vaiheessa kun se tulee vastaan dokumentin käsittelyssä: <script>-elementti, jossa koodia <script type="text/javascript" language="javascript"> <!-- hide script from older browsers var hithere = 'I am a JavaScript statment'; window.alert(hithere); // stop hiding script --> </script> XHTML:ssä <script> -elementtiin voi liittää defer= defer attribuutin ilmaisemaan, että koodi suoritetaan vasta kun koko dokumentti on ladattu ulkoisen tiedoston lataus: <script type="text/javascript" language="javascript" src="myscript.js"> </script> Esimerkkejä: Tämän kurssin kurssisivujen valikko http://jdstiles.com/javamain.html http://developer.irt.org/script/script.htm 19.9.2007 Harri Laine 43 19.9.2007 Harri Laine 44 Harri Laine 8