Kliens oldali script nyelvek - JavaScript

Hasonló dokumentumok
Bevezetés DOM Script beszúrás Szintaxis Események Beépített objektumok. Kliens oldali script nyelvek - JavaScript

Kliens oldali script nyelvek - JavaScript. JavaScript. JavaScript. amit nyújt:

NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv. programozás alapjai. Haramia László

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

WEB TECHNOLÓGIÁK 4.ELŐADÁS

"Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell

Programozás s 2 javascript

HTML, Javascript és az objektumok

WEBFEJLESZTÉS 2. ŰRLAPOK, KÉPEK, TÁBLÁZATOK, BÖNGÉSZŐ

Bevezetés Működési elv AJAX keretrendszerek AJAX

A JavaScript főbb tulajdonságai

Web Technológiák. Répási Tibor egyetemi tanársegéd. Miskolc Egyetem,Gépészmérnöki kar, Infomatikai és Villamosmérnöki Tanszékcsoport (IVM)

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Az image objektum. Az image eseménykezel i. Képek el zetes betöltése. Feladat. Váltóképek készítése

AJAX AJAX. AJAX: Asynchronous JavaScript and XML. az alábbi technológiákon alapul: AJAX-ot támogató keretrendszerek

bb témakörök Programozás JavaScript nyelven A JavaScript szerepe Kliensoldali szkript alkalmazása JavaScript a weboldalon

AJAX-ot támogató keretrendszerek

12.óra jquery Framework #1. Gyimesi Ákos

AJAX Framework építés. Nagy Attila Gábor Wildom Kft.

Tartalom. A JavaScript haladó lehet ségei. Megjelenés. Viselkedés. Progresszív fejlesztés. A progresszív fejlesztés alapelvei

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt.

Objektumorientált programozás

JavaScript változók Number Stringek:

RIA Rich Internet Application

A JavaScript. Kovács Botond. Matematika-Informatika 641. Kolozsvár

Smalltalk 2. Készítette: Szabó Éva

1. Egyszerű (primitív) típusok. 2. Referencia típusok

AWK programozás, minták, vezérlési szerkezetek

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

A C# programozási nyelv alapjai

Jquery. Konstantinusz Kft.

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

Memória játék. Felhasználói dokumentáció

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

AWK programozás, minták, vezérlési szerkezetek

Az Educatio weboldalain elhelyezhető hirdetések technikai paraméterei

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

Google Web Toolkit. Elek Márton. Drótposta kft.

Sakk játék. Feladat: JavaScript segítségével olyan programot kell írni, ami egy sakktáblát szimulál. Kiválasztásra változtatják a helyüket.

Informatika terméktervezőknek

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Web programoz as

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

BASH script programozás II. Vezérlési szerkezetek

Internet programozása. 1. előadás

Javacript alapismeretek

OOP #14 (referencia-elv)

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Szövegek C++ -ban, a string osztály

Tili-Toli játék. Felhasználói dokumentáció

Szoftvertechnológia alapjai Java előadások

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Új jelszó beállítása. Új jelszó beállítása az IFA rendszerhez. BIZALMAS INFORMÁCIÓ JET-SOL JET-SOL 2.0 verzió

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

MATLAB alapismeretek II.

Sakk-játék. Bármilyen számítógépen működik, amin található böngésző és Java alkalmazás. Indító képernyő

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Készítette: Nagy Tibor István

C#, OOP. Osztályok tervezése C#-ban

Flex: csak rugalmasan!

Web programozás. 3. előadás

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Webszolgáltatások (WS)

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Java II. I A Java programozási nyelv alapelemei

PHP. Adatbázisok gyakorlat

Komputeralgebra rendszerek

Internet technológiák

Komputeralgebra rendszerek

Programozási nyelvek II.: JAVA, 4. gyakorlat

Algoritmizálás és adatmodellezés tanítása 1. előadás

Az internet az egész világot behálózó számítógép-hálózat.

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

AWK programozás Bevezetés

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Összefüggő szakmai gyakorlat témakörei évfolyam. 9. évfolyam

Összefüggő szakmai gyakorlat témakörei. 13 évfolyam. Információtechnológiai gyakorlat 50 óra

1. DVNAV letöltése és telepítése

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

1. Jelölje meg az összes igaz állítást a következők közül!

Java II. I A Java programozási nyelv alapelemei

Occam 1. Készítette: Szabó Éva

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Hálózatok építése és üzemeltetése

Webes alkalmazások fejlesztése

XML adatkezelés. A DOM alapú adatkezelés. Dr. Kovács László Répási Tibor kiegészítéseivel

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Ajax és Echo 2. Bokor Attila

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

Átírás:

Kliens oldali script nyelvek - JavaScript

Áttekintés Bevezetés HTML DOM JavaScript beszúrása JavaScript szintaxis JavaScript események Egyéb JavaScript beépített objektumok

JavaScript a JavaScript a Web-en használt legnépszerűbb script nyelv az elterjedtebb böngészők nagyrésze ismeri (Internet Explorer, Mozilla, Firefox, Chrome, Opera) értelmező (interpreter) nyelv a kód értelmezése dinamikusan történik szintaxisa hasonĺıt a Java programozási nyelvéhez a Netscape vezette be (kezdetben LiveScript néven) hivatalos változata ECMAScript (ECMA-262 standard)

JavaScript amit nyújt: a HTML oldalak készítői számára egy programozási eszközt biztosít (használata egyszerű) módosíthatja a HTML tartalmát, kinézetét (a HTML DOM objektumaihoz való hozzáférés által) eseményekre tud reagálni (pl. oldal betöltése, kattintás egy elemre, stb.) a bevitt adat helyességének ellenőrzésére ad lehetőséget (mielőtt elküldenénk a szerverre) megvizsgálhatjuk a böngésző típusát, és ennek függvényében más-más, böngésző-specifikus tartalmat tölthetünk be sütiket (cookies) hozhatunk létre a kliens gépén való információ-tárolás érdekében

HTML Document Object Model A HTML Dokumentum Objektum Modell (HTML DOM) lehetőséget teremt a dokumentum elemeihez való hozzáférésre és ezek módosítására A DOM platform- és nyelvfüggetlen interfész a DOM a HTML dokumentumnak egy fa-szerkezetet feleltet meg. Csomópontok: dokumentum csomópont a teljes dokumentum elem csomópont minden HTML elem (tag) szöveg csomópont az egyes HTML elemek törzse attribútum csomópont a HTML attribútumok megjegyzés csomópontok HTML kommentek DOM objektum modell részei (alap, HTML DOM, XML DOM)

<html> <head> <title>my title</title></head> <body> <a href="...">my link</a> <h1>my header</h1> </body> </html>

DOM DOM objektumok közti kapcsolat: szülő (parent) gyerek (child) testvér (sibling) előd (ancestor) utód (descendant) csomópontokhoz való hozzáférés: getelementbyid(), getelementsbytagname() metódusok segítségével egy elem csomópont parentnode, childnodes, firstchild, lastchild, previoussibling, nextsibling, attributes,... mezőit használva sajátos csomópont: document.body

DOM egy csomópont standard mezői: információt nyújtanak az illető csomópontról nodename csomópont neve (tag-név, attribútumnév, #text, #document, #comment) nodevalue szöveg- illetve attribútum csomópontok esetén a szöveget illetve attribútum értékét tartalmazza nodetype csomópont típusa megj.: egy-egy csomópont számos más mezővel is rendelkezik, illetve hozzárendelt metódusokkal

DOM (JavaScript) objektumok window a JavaScript hierarchiában a legfelső szinten levő objektum. A böngészőablaknak felel meg. kollekció: frames[] mezők: document, history, location; (outerheight, outerwidth); statusbar, scrollbars, toolbar (láthatóak legyenek vagy sem); self, top, status metódusok: blur(),focus(); alert(), confirm(), prompt(); open(), close(); settimeout(), cleartimeout(), setinterval(), clearinterval(); scrollby(), scrollto(); moveby(), moveto(); resizeto(), resizeby() előugró ablakok (a window objektum metódusai) figyelmeztető ablak (alert box): alert("szoveg") inkább hibakeresés (debug) céljából használják jóváhagyó ablak (confirm box): confirm("szoveg") jóváhagyás kérése fontosabb művelet végrehajtása előtt adatbekérő ablak (prompt box): prompt("szoveg","alapertelmezett") pl. adatbekérés az oldal betöltése előtt (ritkán használt)

DOM (JavaScript) objektumok a window objektum alobjektumai: history az illető böngészőablakból meglátogatott URL-ket tartalmazza (window.history) mezők, metódusok: length, back(), forward(), go() location információ az aktuális URL-ról (window.location) mezők, metódusok: href (teljes URL), protocol, hostname, port, pathname, hash (# utáni rész), search (? utáni rész); assign(), reload(), replace() document...

DOM objektumok document objektum a teljes HTML dokumentumhoz való hozzáférést teszi lehetővé a window JavaScript-objektum része (window.document) kollekciók: anchors[], forms[], images[], links[] mezők: body, cookie, domain, lastmodified, referrer, title, URL metódusok: getelementbyid(), getelementsbyname(), getelementsbytagname(), open(), close(), write(), writeln() HTML elemeknek megfelelő objektumok esetén: beálĺıtható, átálĺıtható bármely attribútum értéke az elem törzse az innerhtml mezőn keresztül érhető el lásd: Peldak/csere.htm bővebb információért HTML DOM referencia

JavaScript beágyazása HTML oldalba <script type="text/javascript">... </script> JavaScript-et nem használó régebbi böngészők esetén: <script type="text/javascript"> <!--... //--> </script> Külső script-állomány beszúrása <script src="kulso.js"></script> több HTML oldal is használhatja átláthatóbb kód: HTML illetve JavaScript szétválasztása

JavaScript elhelyezése: elvileg bárhova elhelyezhető (script elembe ágyazva) a script kiértékelése az oldal betöltése közben történik. függvények, globális változók deklarálása a head elemben ajánlott az itt megírt függvényeket pl. meghívhatjuk a body egy elemének valamilyen eseményére

a nyelv szintaxisa Java-hoz hasonló (if, if else, while, switch, for, while, do while, break, continue, stringkezelés... ) változók a változók típusának meghatározása dinamikusan történik a JavaScript különbséget tesz kis és nagybetűk közt a változók deklarálása nem kötelező (de megtehető a var kulcsszó segítségével, típus megadása nélkül) a változók neve betűvel vagy a ( ) karakterrel kell kezdődjön a globális változók hatóköre deklarálásuktól (első használatuktól) a HTML oldal bezárásáig tart

függvények function fuggvenynev (valtozo1, valtozo2,...) {... return(ertek ) // nem kötelező } meghívhatóak a HTML oldal bármely pontjáról egy esemény bekövetkeztekor deklarálása a head elemben ajánlott

Objektumok, tömbök használata tömb létrehozása az Array beépített objektum segítségével: var sorozat=new Array(); sorozat[0]="páros"; sorozat[1]="páratlan"; var sorozat=new Array("páros","páratlan") a JavaScipt tömbök tulajdonképpen index-el ellátott mezőkkel rendelkező objektumokként vannak tárolva általános objektum létrehozása var obj=new Object(); // létrejön egy üres objektum a mezőket hozzáadhatjuk menet közben (ha eddig nem volt ilyen mező, érték-hozzárendeléskor automatikusan létre lesz hozva): obj.nev="móricka" obj.eletkor=21 a mezőkre az alábbi szintaxissal is hivakozhatunk ( tömb jelleg ): obj[ nev ]="Móricka" előny: a szögletes zárójelen belül használhatunk kifejezést is

új függvény hozzáadása az objektumhoz: inline módon: obj.hanyeves=function(){ alert(this.nev+" "+this.eletkor+" eves") } előzőleg definiált függvény hozzáadása: function koszon(){ alert("szia "+this.eletkor) }... obj.koszon=koszon // vigyázat, nem obj.koszon=koszon()

alobjektum hozzárendelése az objektumhoz: var mylibrary= new Object(); mylibrary.books=new Array(); mylibrary.books[0]=new Object(); mylibrary.books[0].title="kétévi vakáció"; mylibrary.books[0].authors=new Array(); var vernegyula=new Object(); vernegyula.name="jules Verne"; vernegyula.foglalkozas="ifjúsági regényíró"; mylibrary.books[0].authors[0]=vernegyula;... bonyolultabb struktúra felépítése kissé nehézkes... gyorsabb megoldás: JSON (JavaScript Object Notation)

JSON JavaScript Object Notation tömb esetén mylibrary.books=[konyv1, konyv2, konyv3] objektum esetén (kapcsos zárójelben felsorolt kulcs:érték párosok): mylibrary.books={ mese : konyv1, regeny : konyv2, zoldsegpucolo: konyv3 } komplex objektumhierarchia építhető fel ilyen módon a mezőknek való értékadáskor kifejezést is haszálhatunk (dinamikus tartalom)

JSON függvény-mező megadása egy objektumnak: var barkacskonyv={ cim: "Csinald magad "+kotetszam+". kotet", szerzok:[{nev:"valaki",ev:25},{nev:"barki", ev:50}], megj: function(hossz){ if(!hossz){hossz=10} var szov=this.cim+", "+this.szerzok[0].nev+" konyve n" for(i=0; i<hossz;i++){ szov+="a" } szov+="gyon unalmas!" alert(szov); } }... barkacskonyv.megj(5) a JSON jelölés illetve egyszerű JavaScipt használata kiegészíthetik egymást

Saját objektum létrehozása Saját objektum létrehozása konstruktor -szerű függvény segítségével: function MyObject(name, size){ this.name=name this.size=size } később ennek segítségével létrehozhatjuk a MyObject típusú objektumot: var myobj= new MyObject("nadragszij","5m"); alert("a(z) "+myobj.name+" merete "+myobj.size); a konstruktoron belül bármilyen mezőt rendelünk hozzá a this-hez, az elérhető lesz az objektum mezőjeként

Saját objektum + függvény függvény-típusú mező hozzáadása az objektumhoz a prototype (az objektumokhoz rendelt speciális mező) segítségével ajánlott MyObject.prototype.tellSize=function(){ alert("a(z) "+this.name+" merete "+this.size) }... var myobj= new MyObject("nadragszij","5m"); myobj.tellsize() példák Objektum JSON.htm, SajatObjektum.htm, SajatObjektum fuggvenymezo.htm, SajatObjektum prototype.htm Objekum mezőinek végigjárása for in ciklus segítségével: mezovegigjaras.htm

JavaScript események JavaScript események: a JavaScript által felismert történések dinamikus (időben változó tartalmú) HTML oldalak létrehozását teszik lehetővé minden egyes HTML elemhez vannak hozzárendelt események, melyek hatására JavaScript függvényt futtathatunk le a HTML tag-ben adjuk meg ezeket: pl. <input type="button" value="megnyom" onclick="gombnyomas()">

JavaScript események néhány esemény (XHTML esetén csupa kisbetűvel kell írni): onload, onunload: oldal vagy kép betöltése, oldal elhagyása (pl. böngésző típusának ellenőrzése, sütik tárolása) lásd: informaciok.htm, cookie.htm onclick (tipikusan gombnyomás vagy más HTML elemre -pl. kép- való kattintásra meghívunk egy JavaScript függvényt) onfocus, onblur, onchange (pl. form elem értékének ellenőrzése, ha változott a tartalma) onsubmit (pl. a form összes adatainak ellenőrzése a szerverre való küldés előtt) onmouseover, onmouseout (pl. animált gombok)

Egyéb JavaScript beépített objektumok Navigator információ a kliens böngészőjéről (window.navigator) mezők: navigator.appname (böngésző típusa), navigator.appversion (böngésző verziószáma) Screen információ a kliens képernyőjéről (window.screen) mezők: screen.width (képernyő szélessége), screen.height (magassága)

Egyéb JavaScript beépített objektumok String minden string típusu változó tképpen String típusú objektum a JavaScriptben mező: length metódusok: touppercase(), tolowercase(); substring(), charat(), indexof(); tostring() (szám átalakítása String-é) Date dátum/idő beálĺıtás/lekérdezés objektum létrehozása: birthday = new Date(); birthday = new Date("June 20, 1996 08:00:00"); metódusok: setdate(), getdate(), set/get: Month Year Time Hours Minutes Seconds Math automatikusan létre van hozva (explicit Math objektum létrehozása nélkül használható) metódusok: kerekítés ceil(), floor(), round(); véletlenszám generálás (0 és 1 között) random()