Aplikacje internetowe laboratorium HTML 5



Podobne dokumenty
Rys.2.1. Drzewo modelu DOM [1]

Programowanie CGI. Jolanta Bachan Informatyka

Defilada - przykład wykorzystujący animowane modele Copperlicht. Andrzej P.Urbański Politechnika Poznańska

Podstawy JavaScript ćwiczenia

Aplikacje WWW - laboratorium

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

za pomocą: definiujemy:

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Zdarzenia Zdarzenia onload i onunload

Laboratorium 7 Blog: dodawanie i edycja wpisów

Funkcje i instrukcje języka JavaScript

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany)

Wysyłanie pliku na serwer. Plik na serwerze.

Aplikacje internetowe - laboratorium

HTML 5 język wykorzystywany do tworzenia i prezentowania stron internetowych www. Jest

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Zbuduj robota. Wprowadzenie HTML & CSS. W tym projekcie nauczysz się, jak wstawiać obrazki, by stworzyć własnego robota! Zadania do wykonania

CSS. Kaskadowe Arkusze Stylów

Multimedia. Główne składowe DHTML a DHTML HTML. CSS (Cascading Style Sheets kaskadowe arkusze stylów) JavaScript

Jak posługiwać się edytorem treści

Danuta ROZPŁOCH-NOWAKOWSKA Strona Moduł 4. Przykład 1. Przykład 2. HTML 4.01 Transitional).

Poprzednia wersja HTML, HTML 4.01, pochodzi z Sieć od tego czasu zmieniła się znacznie.

Tomasz Grześ. Systemy zarządzania treścią, cz. II

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie


I. Dlaczego standardy kodowania mailingów są istotne?

Specyfikacja techniczna dot. mailingów HTML

Instrukcja do programu DoKEX 1.0

Dokumentacja Skryptu Mapy ver.1.1

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści

Aplikacje WWW - laboratorium

Bazy Danych i Usługi Sieciowe

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

Laboratorium 1: Szablon strony w HTML5

APLIKACJA SHAREPOINT

Dokument hipertekstowy

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

I. Wstawianie rysunków

Programy LeftHand - Obsługa plików JPK. Luty 2017

Jak ustawić cele kampanii?

Laboratorium 1 Wprowadzenie do PHP

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

OpenLaszlo. OpenLaszlo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Tworzenie prezentacji, PowerPoint

Przykład integracji kalkulatora mbank RATY na platformie IAI

efaktura walidator Instrukcja integracji komponentów webowych v

Dzisiejszy wykład. Programowanie w Perlu. Usuwanie elementów z początku tablicy. Dodawanie elementów do początku tablic

Backend Administratora

P S E U D O K L A S Y I P S E U D O E L E M E N T Y

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Lista 5 Typy dynamiczne kolejka

Ten krótki poradnik pomoże Ci zainstalować nasz katalog no-name na swojej stronie internetowej.

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

HTML5 i CSS. Deklaracja <!DOCTYPE> musi być na początki dokumentu napisanego w HTML5 przed tagiem <html>.

Ćwiczenie 22 Dynamiczne wczytywanie tekstu z pliku.txt

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Z CSS3 szybciej i przyjemniej

SPIS TREŚCI. . Katalog Wyś wietlanie listy produktów Dodawanie/edycja produktu Grupy cech produktów...

Przyszłe rozporządzenia UE

Programowanie w Internecie

INSTRUKCJA OBSŁUGI BIULETYNU INFORMACJI PUBLICZNEJ

Sesje i logowanie. 1. Wprowadzenie

Proste kody html do szybkiego stosowania.

Zajęcia 4 - Wprowadzenie do Javascript

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Test przykładowy 2 PAI WSB Wrocław /06/2018

Microsoft Small Basic

Krok 1: Stylizowanie plakatu

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Formularze Pobierają dane od użytkownika strony i wysyłają je do przetworzenia na serwerze (gdzie potrzebne są skrypty,któredaneprzetworzą najczęściej

Pomoc dla systemu WordPress

Lista najczęściej pojawiających się problemów

Masz pomysł na lepszy wygląd?

Nazwa implementacji: CSS i box model. Autor: Opis implementacji: Poznajemy podstawy CSS oraz dowiadujemy się o rozmieszczaniu elementów na stronie.

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Dziedziczenie. Dziedziczenie i kaskadowość. Dodał Administrator środa, 10 marzec :00. Tematy: Dziedziczenie Kaskadowość

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Kurs obsługi systemu CMS. Prawie wszystkie treści wyświetlające się na stronie są zlokalizowane w dziale artykuły.

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

Przewodnik... Tworzenie ankiet

Modele danych walidacja widoki zorientowane na model

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Wykład 03 JavaScript. Michał Drabik

Kurier DPD dla Subiekt GT

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

World Wide Web? rkijanka

Przewodnik... Budowanie listy Odbiorców

Pamiętaj o aktywacji swojego konta poprzez kliknięcie linku aktywacyjnego, który otrzymałeś na wprowadzonego maila.

Instrukcja laboratoryjna

Jak zainstalować szablon allegro?

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Transkrypt:

Aplikacje internetowe laboratorium Jednym z głównych założeń twórców jest kompatybilność wsteczna. Z grubsza oznacza to, że wprowadzenie tej wersji standardu nie może spowodować, że 99,9% stron internetowych przestanie być nagle poprawnie wyświetlanych i bardzo dobrze. I my, tworząc strony internetowe, powinniśmy pamiętać o tym samym nawet najnowsze wersje przeglądarek nie wspierają jeszcze w pełni wszystkich cech wprowadzanych przez (o starszych nie wspominając). Dlatego też, gdy chcemy skorzystać z dobrodziejstw tworząc swoją witrynę, powinniśmy upewnić się, że przeglądarka ją wyświetlająca da sobie z nią radę. Aby to zrobić nie sprawdzamy czy przeglądarka obsługuje całego HTML a 5, ponieważ po pierwsze: nie ma czegoś takiego jak cały niemal każdego dnia dodawane są nowe cechy omawianego standardu. Po drugie wystarczyłoby, aby przeglądarka nie obsługiwała jednej funkcji i korzystanie z jakiejkolwiek innej byłoby niemożliwe. Dlatego też sprawdza się czy przeglądarka obsługuje jedną, konkretną funkcję, którą chcemy wykorzystać. Istnieją cztery główne sposoby wykrywania obsługi tych funkcji. Wszystkie wykorzystują język JavaStript, który zostanie dokładniej omówiony na trzecich zajęciach. 1. Sprawdzenie, czy istnieje specyficzny dla cechy globalny atrybut. Pierwszy sposób przetestujemy na przykładzie geolokacji. Jest to funkcja umożliwiająca uzyskanie przybliżonych współrzędnych klienta. Wyznaczenie położenia może odbywać się na przykład przy pomocy adresu IP, wykorzystywanej sieci bezprzewodowej lub pozycji ustalonej przez satelity (GPS) w zależności od urządzenia. Jeśli przeglądarka obsługuje geolokację, wówczas globalny obiekt nawigator będzie posiadał atrybut geolocation. Funkcja sprawdzająca obsługę geolokacji będzie więc miała następującą postać: function isgeolocationsupported() return!!navigator.geolocation; 2. Stworzenie elementu i sprawdzenie, czy specyficzny dla cechy atrybut istnieje w ramach tego elementu. Drugi sposób wykorzystamy na przykładzie elementu <canvas>. Jak sama nazwa wskazuje, jest to pole, na którym można wyświetlać grafikę. Przy użyciu języka JavaScript można na nim rysować różne kształty oraz dokonywać na nich transformacji. Jeśli przeglądarka obsługuje element <canvas>, po jego stworzeniu możliwe będzie utworzenie jego kontekstu przy pomocy getcontext. function iscanvassupported() return!!document.createelement('canvas').getcontext;

3. Stworzenie elementu i sprawdzenie, czy specyficzna dla cechy funkcja istnieje w ramach tego elementu. Trzecią metodę wykorzystamy aby sprawdzić obsługiwane przez element <video> formaty video. I tu pojawia się pytanie: Po co w ogóle taki element? Przecież filmy już od dawna można oglądać na stronach internetowych. Zgadza się ALE do tej pory wyświetlanie filmów video na stronach internetowych było możliwe tylko i wyłącznie dzięki zewnętrznym wtyczkom (np. YouTube oparty jest na technologii Flash owej). Działają one na tyle transparentnie dla przeciętnego użytkownika, że właściwie można o nich zapomnieć. Do tej pory jednak oglądanie filmów było niemożliwe w przeglądarkach nieobsługujących tych technologii. Pytanie Po co taki element? można by więc równie dobrze zadać 22 lata temu, gdy postanowiono dodać element <img>, odpowiedzialny za umieszczanie obrazów na stronach. Funkcja sprawdzająca obsługę konkretnych formatów video będzie składała się z kilku kroków. Najpierw należy sprawdzić, czy strona w ogóle obsługuje video. W tym celu posłużymy się metodą drugą. Następnie stworzymy element video i wywołamy metodę sprawdzającą, czy obsługuje dany format. Cała funkcja dla przykładowego formatu audio/video wygląda następująco: function isoggsupported() if (!(!!document.createelement('video').canplaytype)) return false; var v = document.createelement("video"); return v.canplaytype('video/ogg; codecs="theora, vorbis"'); 4. Stworzenie elementu, przypisanie specyficznemu dla cechy atrybutowi wartości i sprawdzenie, czy wartość ta faktycznie została przypisana. Ostatnią metodę sprawdzania obsługi przetestujemy na przykładzie elementu input. Do istniejących typów tego elementu (np. button, checkbox, hidden, text, submit) doszły takie elementy jak search, color, tel, url, email czy date. Sprawdzenie obsługi nowych typów elementów przeprowadzimy na przykładzie adresu email. Najpierw stworzymy element <input>, a następnie spróbujemy ustawić mu typ email. Jeśli po tej operacji atrybut type nadal będzie miał domyślną wartość (czyli text), będzie to oznaczało, że przeglądarka nie obsługuje tego typu. function isemailsupported() var i = document.createelement("input"); i.setattribute("type", "email") return i.type!== "text"; Wszystkie te metody sprawdzania poszczególnych funkcji sprawiają wrażenie dość uniwersalnych, a co ważniejsze powinny być dość często wykorzystywane. Nasuwa to oczywiście ideę zebrania ich wszystkich w jednej bibliotece, która umożliwi sprawdzanie obsługi poszczególnych elementów w wygodny i prosty sposób. Taka praca została już oczywiście wykonana Biblioteka Modernizr (http://www.modernizr.com/) przeznaczona jest właśnie do detekcji obsługi poszczególnych funkcji przez przeglądarkę. Przykładowe wykorzystanie biblioteki dla elementu <canvas>:

if (Modernizr.canvas) var mycanvas = document.createelement('canvas');... Stworzymy teraz stronę wykorzystującą, która sprawdzi obsługę niektórych funkcji korzystając z biblioteki Modernizr. Do nowego pliku html5.html wklej poniższy kod strony. <!DOCTYPE html> <html lang="pl"> <head> <meta charset="utf-8" /> <title>test przeglądarek</title> <script src="modernizr-custom.js"></script> <script type="text/javascript"> window.onload = Loaded; function Loaded() Check(Modernizr.geolocation, "geo"); Check(Modernizr.canvas, "can"); Check(Modernizr.video.ogg, "ogg"); Check(Modernizr.inputtypes.date, "dat"); function Check(func, id) if (func) AddImage("ok.jpg", id); else AddImage("no.jpg", id) function AddImage(path, id) var img = document.createelement("img"); img.setattribute("src", path); img.setattribute("width", 24); img.setattribute("height", 24); document.getelementbyid(id).appendchild(img); </script> </head> <body> <table> <thead> <tr><th>funkcja</th><th>obsługa</th></tr> </thead> <tbody> <tr><td>geolokacja</td><td id="geo"></td></tr> <tr><td>canvas</td><td id="can"></td></tr> <tr><td>format ogg</td><td id="ogg"></td></tr> <tr><td>pole daty</td><td id="dat"></td></tr> </tbody> </table> </body> </html> Następnie pobierz do tego samego folderu ikony w formacie jpg, które będą sygnalizowały rezultat pozytywny oraz negatywny testu i nazwij je odpowiednio ok.jpg oraz no.jpg. Uruchom utworzoną stronę w różnych przeglądarkach aby zobaczyć które funkcje są przez nie obsługiwane.

Przyjrzyjmy się teraz samej definicji dokumentu. W pierwszej linijce znajduje się znacznik <!DOCTYPE html>. W poprzednim ćwiczeniu wykorzystywaliśmy następujący wpis <!DOCTYPE HTML PUBLIC "- //W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd">. Tak naprawdę liczba poprawnych wpisów informujących o typie dokumentu zbliża się do liczby 100 (jeżeli już jej nie osiągnęła), ale mniejsza o to. Najważniejszy jest fakt, że ten wpis nadal jest poprawny z punktu widzenia! Chcąc jednak zerwać z namnażającymi się jak grzyby po deszczu typami dokumentów oraz, co tu dużo gadać, aby nie musieć tyle pisać ( Dobry informatyk... ), w zapis ten został jak widać znacznie skrócony. Kolejnym ważnym znacznikiem jest <meta>. Tutaj sytuacja jest podobna zamiast bardzo długiej linijki kodu, która zazwyczaj jest bezmyślnie kopiowana pomiędzy kolejnymi stronami mamy kod, który możemy napisać sami i bez większych problemów go zrozumieć;-) Bardzo ważne jednak, aby znacznik <meta> (obojętnie w której postaci) zawsze się pojawił! Jeśli chcesz dowiedzieć się dlaczego jest to takie ważne (podpowiedź: chcesz), przeczytaj http://code.google.com/p/doctypemirror/wiki/articleutf7. Jak widać brak tego elementu nie jest tylko kwestią ewentualnego wyświetlania krzaków ale i poważną luką bezpieczeństwa! Wszechobecnym elementem HTML jest formularz. Niemal codziennie wchodząc na strony wypełniamy ich pola i wysyłamy zawartość na serwer. Czas pobawić się trochę nowymi typami pól. Wstaw pod tabelę na naszej stronie sprawdzającej następujący formularz: <form> <input name="pole" placeholder="szukaj!"> <input name="ocana" type="number" min="2" max="5" step="0.5" value="2"> <input name="poprawka" type="range" min="2" max="5" step="0.5" value="2"> <input name="termin" type="date" required> <input name="adres" type="email" autofocus> <input name="kolor" type="color"> <input type="submit" value="szukaj"> </form> Zbadaj zachowanie poszczególnych pól w różnych przeglądarkach. Jak wygląda pole, gdy przeglądarka nie obsługuje danego typu? Zwróć uwagę na atrybuty placeholder, required oraz autofocus. Dodaj do elementu <form> atrybut novalidate. Jaki ma on wpływ na zachowanie formularza? Teraz przetestujemy działanie elementu <canvas>. Wstaw pod formularzem poniższy kod: <canvas id="c" width="400" height="400"></canvas> Następnie dodaj pod funkcją AddImage poniższą funkcję: function Draw() var canvas = document.getelementbyid("c"); var c = canvas.getcontext("2d"); var g = c.createlineargradient(0, 0, 400, 400); g.addcolorstop(0, "yellow"); g.addcolorstop(1, "green"); c.fillstyle = g; c.fillrect(0, 0, 400, 400);

Na końcu wywołaj ją w funkcji Loaded i przetestuj działanie. function Loaded()... Draw(); Równolegle z rozwija się również kolejna wersja arkuszy stylów CSS 3 jest ona jednak zdecydowanie w tyle, przynajmniej jeśli chodzi o obsługę przez przeglądarki. Przyjrzymy się teraz kilku efektownym stylom. Dodaj kolejny element do strony niech to będzie element <span>. Przypisz mu klasę, napisz wewnątrz elementu swoje imię, a następnie stwórz plik style2.css i umieść w nim styl dla tej klasy:.klasa font-size: 50px; position: absolute; top: 10px; right: 10px; padding: 50px; border: 1px solid #666; Załącz plik ze stylami do strony i obejrzyj wynik. Teraz dodamy dwa style pochodzące z CSS 3. Pierwszy styl będzie to cień dla naszego elementu kontenera, a drugi dla tekstu. Dodaj poniższe wpisy do definicji utworzonej wcześniej klasy i przetestuj działanie w różnych przeglądarkach. text-shadow: 5px 2px 5px #666; box-shadow: 10px 10px 5px #888; Drugim rodzajem stylu który użyjemy będzie zaokrąglenie krawędzi. Zróbmy z naszego gradientu niedojrzałą cytrynę! Dodaj do pliku ze stylami poniższy wpis: #c border-radius: 20px 250px; Wymienione style to oczywiście jedynie wierzchołek góry lodowej, bowiem CSS 3 niesie ze sobą wiele użytecznych efektów. Na koniec, aby narobić jeszcze większego apetytu i zachęcić do głębszego poznania, wejdź na stronę http://canvasrider.com/. Możesz zbadać kod strony jest tam canvas żadnego Flash a!