Programování v jazyce JavaScript

Podobné dokumenty
Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Název Live prez Sear enta Maps

Programování v PHP. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze. Další možnosti formulářů

Ajax - úvod. Klíčové pojmy: Ajax, skriptování na straně klienta a serveru, objekt XMLHttpRequest, DOM model.

JavaScript 101. "Trocha života do statických stránek"

Formuláře. Internetové publikování. Formuláře - příklad

Printris. Hra Printris je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

HTML - Úvod. Zpracoval: Petr Lasák

NSWI096 - INTERNET JavaScript

Mgr. Vlastislav Kučera přednáška č. 2

Mgr. Vlastislav Kučera lekce č. 2

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 14 VY 32 INOVACE

(X)HTML, CSS a jquery

Základy HTML, URL, HTTP, druhy skriptování, formuláře

Programování v jazyce JavaScript

Javascript. Javascript - jazyk

Nejzajímavější jsou události MouseDown a KeyDown.

ČERV. Hra Červ je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

!!Via!AUREA,!s.r.o.!

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Problémy aplikace On-line testů a jejich řešení. Autor: Ing. Lukáš Trombik

jquery - úvod Zdroj: Jiří Zralý:

Tvorba webu. Úvod a základní principy. Martin Urza

Mgr. Vlastislav Kučera Struktura stránky, hlavička,

Jazyk C# - přístup k datům

Javascript v Seznamu

JavaScript v praxi: Sokoban (5. přednáška)

NSWI142 Webové aplikace Zkouškový test

Formuláře. Internetové publikování

Rozcestník virtuálních světů

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

HTML stránka vložení obrázku

Začínáme s vývojem her a DOM

Úvod do aplikací internetu a přehled možností při tvorbě webu

Jazyk C# - přístup k datům

Tvorba webových stránek

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

Úvod do tvorby internetových aplikací

Vývoj Internetových Aplikací

Skriptování na straně serveru a klienta

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot.

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

Co je HTML. 1. Párový tag má začátek a konec: 2. Nepárový tag nemá ukončovací značku:

Tvorba klientských skriptů v jazyce Java Script

Informatika pro moderní fyziky (8) Javascript, CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

Uspořádání klient-server. Standardy pro Web

Fiktivní firma. Žáci získají základní informace o přípravě a tvorbě webových stránek. Na konci prezentace je úkol, se kterým žáci samostatně pracují.

Aja j x a x v v P H P P

OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

<!DOCTYPE html> <html lang="cs"> <head> <meta charset="utf-8" /> <title>název stránky v titulkovém pruhu prohlížeče</title> </head>

Koláčky, sezení. Martin Klíma

GIS integrované využití 6 sem podtitul nebo stručně obsah. OpenLayers

NSWI096 - INTERNET. Úvod do HTML

Uživatelský manuál k prodejní aplikaci věrnostního systému Nestlé

KIV/PIA 2012 Ing. Jan Tichava

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

JavaScript je často zaměňován s Javou. Java je samostatný programovací jazyk. Má s JavaScriptem pouze podobnou syntaxi.

České vysoké učení technické v Praze Fakulta elektrotechnická. Remote Flash Usability testing

Úvod 1 ČÁST 1 HTML 1 Základy HTML a kaskádových stylů 5

CSS Stylování stránek. Zpracoval: Petr Lasák

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Uživatelský manuál k prodejní aplikaci věrnostního systému Nestlé

Jazyk C# a platforma.net

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Tomáš Herout

WWW a HTML. Základní pojmy. Ivo Peterka

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Část 1 Moderní JavaScript

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

Vývoj Internetových Aplikací

Vytváříme aplikace využívající Ajax

Pear - hruška Systém pro implementaci a distribuci znovupoužitelných komponent (v PHP) Strukturovaná knihovna open-source (PHP) skriptů Systém pro dis

Další nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide.

HTML stránka odkaz, zvýraznění textu

KOMPLEXNÍ VZDĚLÁVÁNÍ KATEDRA STROJNÍ SPŠSE a VOŠ LIBEREC. Kapitola 01 - Ovládací panel a tlačítka na ovládacím panelu

Jazyk C# a platforma.net

Inovace výuky prostřednictvím šablon pro SŠ

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

(X)HTML-TAGY. VOŠ a SŠT Česká Třebová

Reranking založený na metadatech

Nápověda k webové aplikaci určené k revizi. ochranných pásem vodních zdrojů a vodárenských nádrží

2. Najeďte si kurzorem myši do pravého spodního rohu k symbolu malého černého čtverečku kurzor myši se změní na černý nitkový kříž.

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

MVVM pro desktop i web

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Tvorba webu v HTML. Redakční systém. CMS Joomla! Co je Joomla

TNPW1 Cvičení aneta.bartuskova@uhk.cz

Maturitní otázky z předmětu PROGRAMOVÁNÍ

9. Rozšiřující desky Evb_Display a Evb_keyboard

Transkript:

Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Události (events) BI-JSC Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti P. Štěpán PHP BI-PHP, výpis 13 1/6

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript"> // udalostni procedura pro prirazeni udalosti pomoci atributu tagu function zpracujkliknuti(){ alert("dekuji, ze jste na me klikli!!"); </script> </head> <body> <h1>udalosti</h1> <script type="text/javascript"> // Probublavani ("zdola nahoru") a zachytavani ("shora dolu") udalosti // DOM 2 zachytavani, udalost v cili a probublavani (cil nema mit // zadnou udalost pr zachytavani. Vetsina prohlizecu ale tuto udalost // realizuje. IE model udalosti DOM nepodporuje - pouze probublavani. // Prirazeni udalosti pomoci atributu tagu: // nedoporucuje se - michani HTML a JavaScriptu; udalostni procedura // nemusi byt pri udalosti jeste nactena (lze osetrit try - catch v // atributu) apod. // Prirazeni udalosti zpusobem "DOM Level 0" (defacto standard) // prirazeni do prislusne vlastnosti elementu // Nasledujici nemusi chodit - tlacitko btndom0 jeste nemusi // existovat (popr. udalostni procedura byt nactena)!! Druhy pripad // lze osetrit pomoci try - catch v atributu. var btn = document.getelementbyid("btndom0"); btn.onclick = function(){ alert("udalost prirazena podle DOM 0"); // odstraneni udalosti - btn.onclick = null; // Vyhoda DOM 0 - nemicha se HTML a JavaScript; nevyhoda - jenom // jedna udalostni procedura pro danou udalost </script> <input type="button" value="klikni na me!" onclick="alert('ahoj')"> <input type="button" value="take klikni!" onclick="zpracujkliknuti()"> <br><br> <input type="button" value="dom 0 Event" id="btndom0"> <input type="button" value="dom 2 Event" id="btndom2">"> P. Štěpán PHP BI-PHP, výpis 13 2/6

<input type="button" value="event info" id="btnevent"> <a href="http://www.centrum.cz" id="acentrum">hop na Centrum</a><br><br> <div id="divctverec" style="width:100px;height:100px;background-color:yellow"></div><br><br> <div id="divdruhyctverec" style="width:100px;height:100px;background-color:cyan"></div><br><br> <input type="text" id="txtcislo"> <script type="text/javascript"> // zde jiz je tlacitko definovano var btn = document.getelementbyid("btndom0"); btn.onclick = function(){ // alert("udalost prirazena DOM 0"); // pri pouziti this zde se obsluha udalosti povazuje za metodu // daneho elementu - proto this ukazuje na nej. Napr.: alert(this.id); // Prirazeni udalosti podle DOM level 2 - metody addeventlistener // a removeeventlistener var btn2 = document.getelementbyid("btndom2"); btn2.addeventlistener("click", function(){ // alert("nazdar!"); alert(this.id); // this - zase aktualni element, false); // false - pro fazi probublavani (nejcastejsi) // prirazeni druhe udalostni procedury btn2.addeventlistener("click", function(){ alert("udalost prirazena dle DOM2.");,, false); Obsluhy se spusti v poradi, ve kterem byly pridavany pokud obsluhy odebirame (removeeventlistener) NELZE pouzivat anonymni fce!! Nejcasteji se obsluhy udalosti pridavaji do faze probublavani - lze realizovat ve vsech prohlizecich. Zachytavani se pouziva pouze tehdy, kdyz je potreba provest predzpracovani pred tim, nez udalost dorazi k cili. Spis nepouzivat Obsluha udalosti v IE: pridavani metoda attachevent("onclick",eventfunction), odebrani metoda detachevent. POZOR! onclick - nikoli click!! Pri pripojeni obsluhy pomoci attachevent bezi obsluha v GLOBALNIM kontextu (oboru platnosti) - tj. this odpovida objektu window!! Opet mozno priradit vice obsluh, ale bezi v OPACNEM poradi!! Lze zkombinovat tak, aby bylo pouzitelne jak v IE, tak v ostatních P. Štěpán PHP BI-PHP, výpis 13 3/6

browsech. Ovsem stále se LISI obory platnosti a poradi zpracovani!! POZOR - nazev udalosti v IE zacina "on". Object event (informace predavane obsluze udalosti): Pro DOM se object event predava obsluze udalosti jako jediny argument. (a to i pro DOM 0). // DOM 0 - pouziti objektu event: var btnevent = document.getelementbyid("btnevent"); btnevent.onclick = function(event){ alert(event.type); // "click" // DOM 2 - pouziti objektu event: var btnevent = document.getelementbyid("btnevent"); btnevent.addeventlistener("click", function(event){ alert(event.type); // "click" vlastnosti/metody objektu event (nektere).bubbles - probublava.cancelable - lze zrusit puvodni akci udalosti (napr. click na hyperlink).currenttarget - element, jehoz obsluha udalosti se prave zpracovava.eventphase - 1 - zacytavani, 2 - cilovy element, 3 - probublavani.preventdaefault() - zrusit standardni akci.stoppropagation() - zruseni zachytavani/probublavani.target - cil udalosti.type - typ udalosti ("click") - napr. při procedure, obsluhující vice udalosti Object event v IE: pro DOM 0 - event je vlastnost window (globalni) - window.event pro attachevent je to opet (jediny) parametr obsluhy udalosti vlastnosti event v IE:.cancelBubble - true (jako.stoppropagation()).returnvalue - false (jako.preventdefault()).srcelement - jako target.type opet lze vytvorit objekt event pro vsechny platformy var acentrum = document.getelementbyid("acentrum"); acentrum.onclick = function(event){ event.preventdefault(); // zruseni std. reakce (nacteni stranky) alert("chtel bys na Centrum, chtel!\nale mas smulu!!") P. Štěpán PHP BI-PHP, výpis 13 4/6

// udalosti mysi.mousedown.mouseup.click (totez Enter na danem prvku).dblclick - neni v DOM.mouseover.mouseout.mousemove Souradnice - event.clientx a.clienty (poloha v okne) - event.screenx,... Modifikacni klavesy - event.shiftkey,.altkey,.ctrlkey,.metakey (ne IE) Tlacitka na mysi (pro mousedown a mouseup): vlastnost event.button 0 - primarni (leve), 1 - prostredni (kolecko), 2 - sekundarni (prave) IE - 1 - primarni, 2 - sekundarni, 4 - prostredni (+ bitove kombinace) // zmena barvy div v zavislosti na pohybu mysi var divctverec = document.getelementbyid("divctverec"); divctverec.addeventlistener("mouseover", function(event){ divctverec.style.backgroundcolor = "red"; divctverec.addeventlistener("mouseout", function(event){ divctverec.style.backgroundcolor = "blue"; // souradnice bodu, kde bylo kliknuto var divdruhy = document.getelementbyid("divdruhyctverec"); divdruhy.addeventlistener("mousedown", function(event){ alert("kliknuto na pozici " + event.clientx + ":" + event.clienty); // Udalosti klavesnice: Standardizovany az v DOM 3 (neni prilis implementovano) keydown (opakovane - repeat na klavesnici) - pred zmenou textu keypress (opakovane - repeat na klavesnici) - pred zmenou textu keyup - po zmene textu keypress - jen pro znakove klávesy keydown a keyup - kod stisknute klavesy obsazen v event.keycode (kody - viz help) pro alfanumericke - jejich kody ASCII bez ohledu na shift keypress - event.charcode (ASCII) - FF, Chrome, Safari - event.keycode (ASCII) - IE, Opera P. Štěpán PHP BI-PHP, výpis 13 5/6

// textove pole, ktere pripousti jen cislice var txtcislo = document.getelementbyid("txtcislo"); txtcislo.addeventlistener("keypress", function(event){ var znak = String.fromCharCode(event.charCode); // zrusit pro neciselne znaky if (("0" > znak) ("9" < znak)) event.preventdefault(); // dalsi udalosti: load (je-li dokonceno zavedeni stranky, obrazku,...) unload (uvolneni dokumentu) resize (zmena rozmeru okna) - nektere prohlizece pri kazde zmene, jine po skonceni (FF) scroll (posun) - na elementu HTML, v rezimu quirks na body; vlastnosti.scrollleft,.scrolltop window.addeventlistener("load", function(){ // atributem v html do body alert("stranka zavedena!"); </script> </body> </html P. Štěpán PHP BI-PHP, výpis 13 6/6