Lektion 5, del 1, kapitel 12

Relevanta dokument
Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

JAVASCRIPT. Beteende

Lektion 2 Del 1 Kapitel 6

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Användarhandledning Version 1.2

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

PROGRAMMERING-Java Omtentamina

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

JS & beteende. TNMK30 - Elektronisk publicering

Övningsuppgifter kapitel 8

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

I ett program hantera man ofta samlingar av objekt av samma typ.

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Objektorienterad programmering i Java I

Typkonvertering. Java versus C

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

TENTAMEN OOP

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

Tentamen OOP

Tentamen i Introduktion till programmering

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Laboration 6 Formulär och stränghantering övningar/uppgifter

Övningsuppgift. En array baklänges. Steg 1. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Statistik över heltal

Laboration A Objektsamlingar

Föreläsning 3-4 Innehåll

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Övningar i JavaScript del 3

Övningar i JavaScript del 4

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

ID1004 Laboration 4, November 2012

TENTAMEN OOP

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Språket Python - Del 1 Grundkurs i programmering med Python

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

SMD 134 Objektorienterad programmering

Inledande programmering med C# (1DV402) Summera med while"-satsen

Introduk+on +ll programmering i JavaScript

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Lektion 6. Datateknik A, Java I, 5 poäng

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java

Tentamen i Grundläggande Programvaruutveckling, TDA548

E03 "Day 3: 2:00 p.m 3:00 p.m"

Programmering för språkteknologer II, HT2014. Rum

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Labora&on 1 Variabler och beräkningar övningar/uppgi9er

COBOL. från grunden. monitors. Peter Sterwe. training people

OOP Objekt-orienterad programmering

Anteckningar 1: Grundläggande saker

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

PROGRAMMERING-Java TENTAMINA

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Tentamen Grundläggande programmering

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

TENTAMEN OOP

[] Arrayer = Indexerad variabel

Avancerade Webbteknologier

TDIU01 - Programmering i C++, grundkurs

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

En snabb titt på XML LEKTION 6

729G04 Programmering och diskret matematik. Python 3: Loopar

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

PROGRAMMERING-JAVA TENTAMINA

Loopar och objekt i JavaScript

TDIU01 - Programmering i C++, grundkurs

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Del A (obligatorisk för alla)

Arrayer (fält)

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

729G04 Programmering och diskret matematik. Föreläsning 7

Programmeringsteknik I

i LabVIEW. Några programmeringstekniska grundbegrepp

Transkript:

Lektion 5, del 1, kapitel 12 Inlärnings mål Att förstå objekt baserad programmering Att förstå begreppet inkapsling Att kunna använda objektet Math Att kunna använda objektet String Att kunna använda objektet Date Att kunna använd Boolian och Number objekt JavaScript objekt Introduktion Hitintills har vi enbart arbetat med grundläggande strukturell programmering. Vi skall nu se hur vi med hjälp av JavaScript kan påverka och förändra varje enskilt objekt i ett XHTML program. I denna lektion skall vi börja med att titta på några grundläggande objekt i JavaScript. Objekt För att förstå objekt kan man dra paralleller till omvärlden. Allt vi ser omkring oss kan ses som objekt. Om vi betraktar en bil så är själva bilen ett objekt. Storlek, form, färg, vikt mm. Är attribut (egenskaper) till objektet. Acceleration, bromsa, sväng mm. Är metoder (funktioner) till objektet. På samma sätt har objekt i JavaScript egenskaper och metoder. Objektet Math De Allra flesta metoder för matematiska operationer är samlade i objektet Math. Metoderna anropas med objektet följt av önskad metod ex Math.sqrt(tal) för att räkna ut kvadratroten ur talet. Här följer en sammanställning över tillgängliga metoder för objektet Math. Metod Beskrivning Abs ( x ) Absolutvärde av x Ceil ( x ) Avrunda x till minsta heltal inte mindre än x Cos ( x ) Cosinus för talaet x Exp ( x ) Exponenten e x Floor ( x ) Avrundar x till största heltal ej större än x Log ( x ) Naturliga logaritmen för x (bas e x )

Max ( x, y ) Returnerar det största av talen x och y Min ( x, y ) Returnerar det minsta av talen x och y Pow ( x, y ) x upphöjt till y (x y ) Round ( x ) x avrundeat till närmaste heltal Sin ( x ) Sinus för talet x Sqrt ( x ) Kvadratroten för talet x Tan ( x ) Tangens för talet x Objektet Math definierar även ett antal matematiska konstanter. Konstant Beskrivning Ungefärligt värde Math.E Euler s konstant 2,718 Math.LN2 Naturliga logaritmen av 2 0,693 Math.LN10 Naturliga logaritmen av10 2,302 Math.LOG2E 2 logaritm av Euler s konstant 1,442 Math.LOG10E 10 logaritm av Euler s konstant 0,434 Math.PI π (pi) 3,141592633589793 Math.SQRT1_2 Kvadratroten av ½ 0,707 Math.SQRT2 Kvadratroten av 2 1,414 Objektet String Vi skall nu introducera objektet String. Strängar är en grundläggande byggsten i alla mordena programmeringsspråk. Alla text strängar är en instans av objektet Sting. En sträng kan innehålla text siffror och olika special tecken. En sträng deklareras med t.ex. var color = blue Detta skapar en stäng med namnet color som innehåller fyra tecken. De vanliga jämförelse operatorerna kan användas på strängar (<, <=, >, >=, ==,!=). Metoder för objektet String String objektet tillhandahåller en mängd metoder för att välja eller söka tecken I strängar, för att slå samman strängar, söka ut del strängar och mycket mer. String tillhanda håller även en mängd metoder för att generera XHTML kod. (index räknas från noll) Metoder: Metod charat ( index ) carcodeat ( index ) concat (string) fromcharcode (value1, value2, ) indexof ( substring, tecken) lastindexof ( Beskrivning Returnerar tecknet vid index, om inget tecken tom stäng. (s o men för unicode) Slår samman en sträng med en annan ex. s1.concat(s2) Konverterar en lista av Unicode värden till en sträng av ASCII tecken Söker igenom strängen efter första förekomst av subträngen och returnerar index till första position i substrängen. Returnerar 1 om strängen inte finns. Som ovan men sökning sker bakifrån.

substring, index) slice ( start, end) Returnerar en sträng med innehållet från start till end split ( string ) Delar en sträng array av strängar. Delning sker vid mellanslag och/eller komma. substr ( start, length) Returnerar en sträng som börjar vid start och är length lång. tolowercase ( ) Returnerar en sträng där alla tecken är konverterade till kapitäler. touppercase( ) Returnerar en sträng där alla tecken är konverterade till versaler. tostring ( ) Returnerar källsträngen valueof ( ) Returnerar källsträngen anchor ( name ) Bäddar in källsträngen i ett ankar element <a> </a> med name som namn på länken big ( ) Lägger strängen inom <big> element blinc ( ) Lägger strängen inom <blinc> element bold ( ) Lägger strängen inom <b> element fixed ( ) Lägger strängen inom <tt> element link ( url ) Lägger strängen inom <a> element och sätter sökvägen till url sub ( ) Lägger strängen inom <sub> element sup ( ) Lägger strängen inom <sup> element Detta är några av de metoder som finns för objektet Sting. Studera Figur 12.4 charat, charcodeat, fromcharcode, tolowercace ochtouppercace Figur 12.5 indexof, lastindexof Figur 12.6 split Figur 12.7 XHTML metoder Objektet Date Det finns en mängd metoder för att hantera datum och tid. Jag tänker inte ta upp mer än några få exempel. Det är bättre att slå upp rätt metod när man behöver dem. Metoderna kan utgå från lokal ti eller UTC tid (GMT). De flesta metoderna utgår från lokal tid. Några användbara metoder är : GetDate() som returnerar datum mellan 1 31 GetDay() som returnerar dag från 0 6 där 0 är söndag och 6 är påfallande lördag ToLocalString() som ger nuvarande år månad dag och tid i lokalt tidsformat. De flesta av metoderna för objektet Data visas i figur 12.9 Objektet Boolean och Number

Det sista objekten vi skall titta på är Boolean och Number. Dessa definierar metoder för att hantera booleska och numeriska objekt. För att explicit skapa ett Boolean objekt skriver vi var b = new Boolean( true false); De metoder som finns för Boolean är: ToString() som returnerar det värde som representeras av variabeln som en sträng. ValueOf() som returnerar true eller false. För att skapa ett Number objekt skriver vi var n = new Number( nummer); De metoder som finns för Number är: ToString( bas) som returnerar värdet på variabeln som en sträng i det talsystem som vi anger med bas ValueOf( ) returnerar värdet på variabeln Number.MAX_VALUE returnerar det största värde som kan lagras Number.MIN_VALUE returnerar det minsta värde som kan lagras Number.NaN Egenskap som representerar NaN Number.NEGATIVE_INFINITY representerar alla värden mindre än Number.MIN_VALUE Number.POSITIVE_INFINITY representerar alla värden större än Number.MAX_VALUE

Del 2, Kapitel 13 Inlärningsmål Att kunna använda objektmodellen för dynamisk HTML Att förstå objekthierarkin i dynamisk HTML Att med hjälp av samlingarna all och children kunna nå alla objekt på en webbsida Att kunna förändra styles dynamiskt Att kunna använda frames samlingen för att manipulera objekt i andra ramar Introduktion Vi skall nu se på objektmodellen för DHTML. Det är med hjälp av denna som vi kan ta kontroll över utformning och egenskaper dynamiskt i XHTML. Att referera till ett objekt Det enklaste sättet för att referera till ett objekt är med hjälp av objektets ID (namn). I figur 13.1 i boken visar ett exempel på hur man kan påverka innehållet i ett paragraf element med egenskapen innertext för id t ptext för att ändra den text som presenteras i webbfönstret. På rad 25 kopplar vi paragrafen till ett ID ptext. Detta utnyttjar vi på rad 16 där vi visar en popp upp ruta som använder värdet på innertext för ptext. På rad 17 ändrar vi värdet på egenskapen innertext för ptext vilket medför att texten som visas i webbläsarfönstret ändras. Jag har på webct lagt upp ett eget exempel som visar användningen av egenskapen innerhtml och ytterhtml. Samlingar och children Samlingar är arrayer av relaterade objekt på en webbsida. Detta innebär att metoder för att hantera arrayer även kan användas för att hantera objektsamlingar. I InternetExplorer är samlingen all mycket central då den innehåller referenser till alla objekt i webbdokumentet. I figur 13.2 visar man hur man kan loopa igenom samlingen för att se vilka objekt som skapats för et webbdokument. På rad 18 defenieras en loop som söker igenom samlingen efter referenser till alla objekt. Som ni ser så använder man sig av all.lenght för att veta antalet objekt. Egenskapen innerhtml likar innertext men hanterar även underelement.

I figur 13.3 har man raffinerat detta så att man får ett mer lättläst resultat. Detta har man åstadkommit genom att använda samlingen children. På rad 38 gör man ett anrop till funktionen child och som argument skickar man en referens till objektsamlingen all med index satt till post nummer 4 vilket motsvarar html elementet. På rad 16 börjar vår funktion och som ni ser tar den ett objekt som argument. På rad 22 inleder vi en for loop som testar på children.length. På rad 24 finns en if satts som innehåller ett rekursivt anrop till child. Detta fortsätter tills if satsen blir falsk och vi går in i else satsen vilken tar ut själva elementet. Dynamisk förändring av styles Ett elements style kan med hjälp av JavaScript förändras dynamiskt. Detta sker med document.element.style.egenskap = värde i figur 13.4 visar man detta genom att ändra bakgrunds färg utifrån inmatat värde i en prompt. Figur 13.5 är mycket lika men här ändrar man textsorlek genom att binda ett ID till olika klasser. Dynamisk positionering En annan intressant egenskap som kan förändras dynamiskt är position. Detta åstadkommes genom att ändra ett elements top, left, right och bottom egenskaper. I figur 13.6 demonstreras detta samt dynamisk förändring av text färg, font och fontstorlek. På rad 14 till 19 anger man ett antal variabler som används i scriptet. Funktionen start innehåller ett funktions anrop som kan liknas med en timer. Funktionen anropar funktionen run med 100 millisekunders mellanrum. I funktionen run på rad 28 ökar vi count med speed, därefter på rad 30 testar vi om count är jämt delbart med 200. Det är den vid 0 och 200 och vi går in i if satsen om ändrar riktning, färg och font. På rad 42 ändrar vi font storlek, rad 43 ändrar position och på rad 44 45 ändrar vi utskriften på skärmen. Samlingen frames Farmaes erbjuder ofta en lösning på design problem. Vid en del tillfällen vill vi från en frame komma åt resurser i eller skriva till en annan frame. För att göra detta måste vi gå via parent. I figur 13.7 och 13.8 visar man hur detta går till. Figur 13.7 är en index fil som skapar ett dokument med två ramar. En benämnd upper och en benämnd lower. I upper laddas filen top.html (fig 13.8), lower är från början tom.

Figur 13.8 innehåller en funktion som skriver en inmatad text till den undre framen i fig 13.7. Detta sker med parent.frames( lower ).document.write( text ); Objektet navigator Detta objekt har ni redan stiftat bekantskap med på en labb. Navigator är ett objekt som finns i alla webbläsare. Detta innehåller bl.a. information om webbläsaren och systemet. Detta kan användas tex. För att ladda olika stilmallar beroende på vilken webbläsare som körs. Figur 13.9 visar hur man kan hämta webbläsar typ och version med detta objekt. Summering Objekten i DHTML är organiserade i en hierarkisk struktur som är olika beroende på vilken webbläsare som körs. I följand bild visas objektstrukturen i InternetExplorer 4 -