SlideShare a Scribd company logo
1 of 39
Download to read offline
Introduktion till JavaScript
Dagens föreläsing
• JavaScript?
• JavaScript – syntax?
• JavaScript – att leta upp element i HTML-dokumentet
• JavaScript – att manipulera element i HTML-dokumentet
• JavaScript – exempel
Var passar JavaScript in?
JavaScript
CSS
HTML
Innehåll
Interaktivitet
Utformning
Struktur
Innehåll
JavaScript lever i din webbläsare
Allt som behövs för att köra JavaScript är en webbläsare – smidigt värre!
Har ni sett det innan?
JavaScript – varför?
• Vi vill ge liv till annars statiska webbsidor!
• T.ex.
• Automatiskt modifiera dynamiskt innehåll
• Facebook
• Twitter
• Gmail
• Diverse beräkningar
• T.ex. valutakonverteringar
• Förbättrade GUI
• Animeringar
• Lägga till/ta bort/modifiera befintliga HTML-element
JavaScript - exempel
• Bildspel: http://wowslider.com/javascript-slideshow-quiet-rotate-demo.html
• Dynamisk innehåll: http://gmail.com, http://facebook.com, https://twitter.com/
• Beräkningar: http://valuta.se
• Validera formulär: http://yensdesign.com/tutorials/validateform/
• Dialogrutor: http://tibbelit.se/film
• Interaktiva element: http://mrdoob.com/projects/chromeexperiments/ball_pool/
• Spel: http://www.phoboslab.org/ztype/
• Animationer: http://codepen.io/juliangarnier/pen/idhuG
• och mycket mera!
JavaScript - Historik
• Utvecklades av Netscape under mitten av 90-talet
• Har inget med Java att göra – det är ett eget programmeringsspråk
• Microsoft skapade sin egen verision av JavaScript – Jscript
• På senare dagar (2005) har ajax blivit en populärt
• Lägger till extra funktionalitet för webben och webbläsare
Vad kan man göra med JavaScript?
• I princip vad du vill!
• Men det används ofta till att skapa interaktiva webbsidor
• Med interaktiv menas: Reagera på användaras handlingar och
modifiera webbsidans innehåll
JavaScript
• JavaScript skrivs som ren text
• Det kan skrivas antingen inbäddat direkt i HTML-koden
• Eller i en separat fil, som sedan inkluderas i HTML-dokumentet
JavaScript - Var skrivs det?
JavaScript som programmeringsspråk
• Ett högnivåspråk
• Ett otypat språk
• Ett skriptspråk
• Ni kan programmera, så efter lite träning med syntaxen så borde det
inte vara några problem att komma igång =)
Exempel på syntax
Demo för JavaScript
Tillgänglighet
Vad händer om man har inaktiverat JavaScript i webbläsaren?
Inaktiverat JavaScript?
• Man kan inaktivera det manuellt
• På vissa företag inaktiveras det
• Gamla webbläsare stödjer ev. inte JavaScript fullt ut
Hur löser vi det?
Providing an alternative version of your
functionality or making the user aware of
shortcomings of a product as a safety
measure to ensure that the product is usable.
- Chrisitan Heilmann
Med andra ord…
1. Bygg webbplatser för moderna webbläsare
2. Identifiera kritisk funktionalitet och
1. Se till att detta fungerar i alternativa webbläsare
2. Berätta för användaren att något är fel och föreslå en metod för att fixa
detta
Exempel
<a href="javascript:window.print()">Print page</a>
- Fungerar inte utan JavaScript
Hur löser vi det?
<a href="javascript:window.print()">Print page</a>
<noscript>
<p class="scriptwarning">
Printing the page requires JavaScript.
Please turn it on in your browser.
</p>
</noscript>
Är det den smidigaste lösningen?
• Vad är JavaScript?
• Hur aktiverar jag det?
• Får inte använda JavaScript (företagsmiljö),
• kan inte använda JavaScript
• Aktivera JavaScript bara för att skriva ut?
Tänk på användaren
<a href="javascript:window.print()">Print page</a>
<noscript>
<p class="scriptwarning">
Print a copy of your confirmation.
Select the "Print" icon in your browser,
or select "Print" from the "File" menu.
</p>
</noscript>
Att hitta element genom JS
• En stor fördel med JS är att vi kan leta upp HTML-element!
• Vi kan leta upp detta genom att:
• Ange typen av element (t.ex. alla <p>-element)
• Ange klassen för ett element (t.ex. alla element med klassen ”blue”)
• Ange ett id för ett element
• Jämför detta med hur vi använder CSS för att hitta våra element.
Att hitta ett HTML-element genom JavaScript
Att hitta flera HTML-element genom JavaScript
Användardrivet GUI
• Vi ”lyssnar” efter användarens handlingar, som t.ex.
• Klick
• Musrörelser
• Svepningar
• M.m.
• Vi kan sedan koppla ihop dessa handlingar med element – och sedan
koppla detta till en funktion
Att manipulera element genom JavaScript
• När vi i JavaScript letat upp ett element kan vi modifiera det
• Ta bort det
• Ändra ev. innehåll (text)
• Ändra CSS-egenskaper
• Ändra/lägga till/ta bort attribut
Exempel
JavaScript
HTML
Att modifiera element
• Vi kan ändra attribut för element
• Vi kan ändra CSS för element
• Vi kan ändra text för element
• Vi kan lägga till nya element
• Vi kan ta bort element
Exempel på att modifiera element
”this” – att referera till elementet som utlöste
händelsen
• ”this” som nyckelord är väldigt händigt att hantera – på så sätt
behöver vi inte ”leta upp” elementet som utlöste händelsen mer än
en gång.
Exempel med JavaScript
Hitta & manipulera element
DOM
• Trädstruktur som motsvarar taggarnas ordning/nästling
• Varje element är en ”nod” i trädet
• Relationer mellan noderna beskrivs med förälder/barn och syskon
Källkod vs. noder
Använda DOM
• I JavaScript kan man alltid komma åt DOM via objektet ”document”
• Därifrån kan vi ”navigera” genom trädet
// referens till body-elementet:
document.body
// lista över alla element i body
document.body.childNodes
Att navigera i DOM
• Vi antar att ”node” är en nod/element i DOM-trädet
// Navigera mellan noder på samma nivå
node.nextSibling
node.previousSibling
// Nedåt, barnnoder
node.firstChild
node.lastChild
node.childNodes // alla barn
// Uppåt, förälder
node.parentNode
Att loopa igenom alla element
• Hämta en mängd med element (en lista med element):
• document.querySelectorAll
• ”Loopa” igenom alla element som returneras, ex.
Att hämta värde från formulär
Exempel - DOM

More Related Content

What's hot

VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLAnton Tibblin
 
HT16 - DA156A - JavaScript forts.
HT16 - DA156A - JavaScript forts.HT16 - DA156A - JavaScript forts.
HT16 - DA156A - JavaScript forts.Anton Tibblin
 
HT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleHT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleAnton Tibblin
 
VT2018 - DA355A - Ajax
VT2018 - DA355A - AjaxVT2018 - DA355A - Ajax
VT2018 - DA355A - AjaxAnton Tibblin
 
HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2Anton Tibblin
 
HT20 - DA106A - Kursintroduktion
HT20 - DA106A - KursintroduktionHT20 - DA106A - Kursintroduktion
HT20 - DA106A - KursintroduktionAnton Tibblin
 
HT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulärHT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulärAnton Tibblin
 
VT17 - DA355A - Responsive design
VT17 - DA355A - Responsive designVT17 - DA355A - Responsive design
VT17 - DA355A - Responsive designAnton Tibblin
 
HT17 - DA156A - Responsiv webbutveckling
HT17 - DA156A - Responsiv webbutvecklingHT17 - DA156A - Responsiv webbutveckling
HT17 - DA156A - Responsiv webbutvecklingAnton Tibblin
 
HT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionHT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionAnton Tibblin
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenAnton Tibblin
 
HT17 - DA156A - Layout med HTML & CSS
HT17 - DA156A - Layout med HTML & CSSHT17 - DA156A - Layout med HTML & CSS
HT17 - DA156A - Layout med HTML & CSSAnton Tibblin
 
HT16 - DA156A - Introduktion till HTML
HT16 - DA156A - Introduktion till HTMLHT16 - DA156A - Introduktion till HTML
HT16 - DA156A - Introduktion till HTMLAnton Tibblin
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptAnton Tibblin
 

What's hot (16)

JavaScript och DOM
JavaScript och DOMJavaScript och DOM
JavaScript och DOM
 
VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTML
 
LocalStorage
LocalStorageLocalStorage
LocalStorage
 
HT16 - DA156A - JavaScript forts.
HT16 - DA156A - JavaScript forts.HT16 - DA156A - JavaScript forts.
HT16 - DA156A - JavaScript forts.
 
HT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleHT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottle
 
VT2018 - DA355A - Ajax
VT2018 - DA355A - AjaxVT2018 - DA355A - Ajax
VT2018 - DA355A - Ajax
 
HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2
 
HT20 - DA106A - Kursintroduktion
HT20 - DA106A - KursintroduktionHT20 - DA106A - Kursintroduktion
HT20 - DA106A - Kursintroduktion
 
HT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulärHT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulär
 
VT17 - DA355A - Responsive design
VT17 - DA355A - Responsive designVT17 - DA355A - Responsive design
VT17 - DA355A - Responsive design
 
HT17 - DA156A - Responsiv webbutveckling
HT17 - DA156A - Responsiv webbutvecklingHT17 - DA156A - Responsiv webbutveckling
HT17 - DA156A - Responsiv webbutveckling
 
HT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionHT17 - DA156A - Kursintroduktion
HT17 - DA156A - Kursintroduktion
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursen
 
HT17 - DA156A - Layout med HTML & CSS
HT17 - DA156A - Layout med HTML & CSSHT17 - DA156A - Layout med HTML & CSS
HT17 - DA156A - Layout med HTML & CSS
 
HT16 - DA156A - Introduktion till HTML
HT16 - DA156A - Introduktion till HTMLHT16 - DA156A - Introduktion till HTML
HT16 - DA156A - Introduktion till HTML
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
 

Similar to VT18 - DA355A - Introduktion till JavaScript

DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelAnton Tibblin
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Martin Carlsson
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
VT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - jQuery och AjaxVT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - jQuery och AjaxAnton Tibblin
 
VT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapVT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapAnton Tibblin
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitekturniklal
 
HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - ExtraAnton Tibblin
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonAnton Tibblin
 
VT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkVT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkAnton Tibblin
 
VT2018 - DA355A - Geolocation, Media, Package Manage
VT2018 - DA355A - Geolocation, Media, Package ManageVT2018 - DA355A - Geolocation, Media, Package Manage
VT2018 - DA355A - Geolocation, Media, Package ManageAnton Tibblin
 
HT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appHT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appAnton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
HT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLHT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLAnton Tibblin
 
SEO Do's and Don'ts - Söklandskapet 2018
SEO Do's and Don'ts - Söklandskapet 2018SEO Do's and Don'ts - Söklandskapet 2018
SEO Do's and Don'ts - Söklandskapet 2018Linus Logren
 
HT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTMLHT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTMLAnton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
HT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLHT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLAnton Tibblin
 
HT16 - DA156A - Kursintroduktion
HT16 - DA156A - KursintroduktionHT16 - DA156A - Kursintroduktion
HT16 - DA156A - KursintroduktionAnton Tibblin
 

Similar to VT18 - DA355A - Introduktion till JavaScript (20)

DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
 
JavaScript & DOM
JavaScript & DOMJavaScript & DOM
JavaScript & DOM
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
 
jQuery & Ajax
jQuery & AjaxjQuery & Ajax
jQuery & Ajax
 
VT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - jQuery och AjaxVT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - jQuery och Ajax
 
VT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapVT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & Bootstrap
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitektur
 
HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - Extra
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
VT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkVT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & Webbramverk
 
VT2018 - DA355A - Geolocation, Media, Package Manage
VT2018 - DA355A - Geolocation, Media, Package ManageVT2018 - DA355A - Geolocation, Media, Package Manage
VT2018 - DA355A - Geolocation, Media, Package Manage
 
HT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appHT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web app
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
HT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLHT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTML
 
SEO Do's and Don'ts - Söklandskapet 2018
SEO Do's and Don'ts - Söklandskapet 2018SEO Do's and Don'ts - Söklandskapet 2018
SEO Do's and Don'ts - Söklandskapet 2018
 
HT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTMLHT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTML
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
HT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLHT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTML
 
HT16 - DA156A - Kursintroduktion
HT16 - DA156A - KursintroduktionHT16 - DA156A - Kursintroduktion
HT16 - DA156A - Kursintroduktion
 

More from Anton Tibblin

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdfAnton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingAnton Tibblin
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringAnton Tibblin
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonAnton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionAnton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekAnton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingAnton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSSAnton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulärAnton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaAnton Tibblin
 
VT23 - RWD & Ramverk
VT23 - RWD & RamverkVT23 - RWD & Ramverk
VT23 - RWD & RamverkAnton Tibblin
 
VT23 - DA395A - Kursintroduktion
VT23 - DA395A - KursintroduktionVT23 - DA395A - Kursintroduktion
VT23 - DA395A - KursintroduktionAnton Tibblin
 
HT22 - DA354A - Files
HT22 - DA354A - FilesHT22 - DA354A - Files
HT22 - DA354A - FilesAnton Tibblin
 
HT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonHT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonAnton Tibblin
 

More from Anton Tibblin (20)

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhantering
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 
VT23 - RWD & Ramverk
VT23 - RWD & RamverkVT23 - RWD & Ramverk
VT23 - RWD & Ramverk
 
VT23 - DA395A - Kursintroduktion
VT23 - DA395A - KursintroduktionVT23 - DA395A - Kursintroduktion
VT23 - DA395A - Kursintroduktion
 
HT22 - DA354A - Files
HT22 - DA354A - FilesHT22 - DA354A - Files
HT22 - DA354A - Files
 
HT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonHT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikon
 

VT18 - DA355A - Introduktion till JavaScript

  • 2. Dagens föreläsing • JavaScript? • JavaScript – syntax? • JavaScript – att leta upp element i HTML-dokumentet • JavaScript – att manipulera element i HTML-dokumentet • JavaScript – exempel
  • 3. Var passar JavaScript in? JavaScript CSS HTML Innehåll Interaktivitet Utformning Struktur Innehåll
  • 4. JavaScript lever i din webbläsare Allt som behövs för att köra JavaScript är en webbläsare – smidigt värre!
  • 5. Har ni sett det innan?
  • 6. JavaScript – varför? • Vi vill ge liv till annars statiska webbsidor! • T.ex. • Automatiskt modifiera dynamiskt innehåll • Facebook • Twitter • Gmail • Diverse beräkningar • T.ex. valutakonverteringar • Förbättrade GUI • Animeringar • Lägga till/ta bort/modifiera befintliga HTML-element
  • 7. JavaScript - exempel • Bildspel: http://wowslider.com/javascript-slideshow-quiet-rotate-demo.html • Dynamisk innehåll: http://gmail.com, http://facebook.com, https://twitter.com/ • Beräkningar: http://valuta.se • Validera formulär: http://yensdesign.com/tutorials/validateform/ • Dialogrutor: http://tibbelit.se/film • Interaktiva element: http://mrdoob.com/projects/chromeexperiments/ball_pool/ • Spel: http://www.phoboslab.org/ztype/ • Animationer: http://codepen.io/juliangarnier/pen/idhuG • och mycket mera!
  • 8. JavaScript - Historik • Utvecklades av Netscape under mitten av 90-talet • Har inget med Java att göra – det är ett eget programmeringsspråk • Microsoft skapade sin egen verision av JavaScript – Jscript • På senare dagar (2005) har ajax blivit en populärt • Lägger till extra funktionalitet för webben och webbläsare
  • 9. Vad kan man göra med JavaScript? • I princip vad du vill! • Men det används ofta till att skapa interaktiva webbsidor • Med interaktiv menas: Reagera på användaras handlingar och modifiera webbsidans innehåll
  • 10. JavaScript • JavaScript skrivs som ren text • Det kan skrivas antingen inbäddat direkt i HTML-koden • Eller i en separat fil, som sedan inkluderas i HTML-dokumentet
  • 11. JavaScript - Var skrivs det?
  • 12. JavaScript som programmeringsspråk • Ett högnivåspråk • Ett otypat språk • Ett skriptspråk • Ni kan programmera, så efter lite träning med syntaxen så borde det inte vara några problem att komma igång =)
  • 15. Tillgänglighet Vad händer om man har inaktiverat JavaScript i webbläsaren?
  • 16. Inaktiverat JavaScript? • Man kan inaktivera det manuellt • På vissa företag inaktiveras det • Gamla webbläsare stödjer ev. inte JavaScript fullt ut
  • 17. Hur löser vi det? Providing an alternative version of your functionality or making the user aware of shortcomings of a product as a safety measure to ensure that the product is usable. - Chrisitan Heilmann
  • 18. Med andra ord… 1. Bygg webbplatser för moderna webbläsare 2. Identifiera kritisk funktionalitet och 1. Se till att detta fungerar i alternativa webbläsare 2. Berätta för användaren att något är fel och föreslå en metod för att fixa detta
  • 20. Hur löser vi det? <a href="javascript:window.print()">Print page</a> <noscript> <p class="scriptwarning"> Printing the page requires JavaScript. Please turn it on in your browser. </p> </noscript>
  • 21. Är det den smidigaste lösningen? • Vad är JavaScript? • Hur aktiverar jag det? • Får inte använda JavaScript (företagsmiljö), • kan inte använda JavaScript • Aktivera JavaScript bara för att skriva ut?
  • 22. Tänk på användaren <a href="javascript:window.print()">Print page</a> <noscript> <p class="scriptwarning"> Print a copy of your confirmation. Select the "Print" icon in your browser, or select "Print" from the "File" menu. </p> </noscript>
  • 23. Att hitta element genom JS • En stor fördel med JS är att vi kan leta upp HTML-element! • Vi kan leta upp detta genom att: • Ange typen av element (t.ex. alla <p>-element) • Ange klassen för ett element (t.ex. alla element med klassen ”blue”) • Ange ett id för ett element • Jämför detta med hur vi använder CSS för att hitta våra element.
  • 24. Att hitta ett HTML-element genom JavaScript
  • 25. Att hitta flera HTML-element genom JavaScript
  • 26. Användardrivet GUI • Vi ”lyssnar” efter användarens handlingar, som t.ex. • Klick • Musrörelser • Svepningar • M.m. • Vi kan sedan koppla ihop dessa handlingar med element – och sedan koppla detta till en funktion
  • 27. Att manipulera element genom JavaScript • När vi i JavaScript letat upp ett element kan vi modifiera det • Ta bort det • Ändra ev. innehåll (text) • Ändra CSS-egenskaper • Ändra/lägga till/ta bort attribut
  • 29. Att modifiera element • Vi kan ändra attribut för element • Vi kan ändra CSS för element • Vi kan ändra text för element • Vi kan lägga till nya element • Vi kan ta bort element
  • 30. Exempel på att modifiera element
  • 31. ”this” – att referera till elementet som utlöste händelsen • ”this” som nyckelord är väldigt händigt att hantera – på så sätt behöver vi inte ”leta upp” elementet som utlöste händelsen mer än en gång.
  • 32. Exempel med JavaScript Hitta & manipulera element
  • 33. DOM • Trädstruktur som motsvarar taggarnas ordning/nästling • Varje element är en ”nod” i trädet • Relationer mellan noderna beskrivs med förälder/barn och syskon
  • 35. Använda DOM • I JavaScript kan man alltid komma åt DOM via objektet ”document” • Därifrån kan vi ”navigera” genom trädet // referens till body-elementet: document.body // lista över alla element i body document.body.childNodes
  • 36. Att navigera i DOM • Vi antar att ”node” är en nod/element i DOM-trädet // Navigera mellan noder på samma nivå node.nextSibling node.previousSibling // Nedåt, barnnoder node.firstChild node.lastChild node.childNodes // alla barn // Uppåt, förälder node.parentNode
  • 37. Att loopa igenom alla element • Hämta en mängd med element (en lista med element): • document.querySelectorAll • ”Loopa” igenom alla element som returneras, ex.
  • 38. Att hämta värde från formulär