Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych Autor artykułu: mgr Jerzy Wałaszek |
©2015 mgr
Jerzy Wałaszek
|
JavaScriptJęzyki programowania dzielimy na dwa rodzaje:
Programy w języku JavaScript będziemy nazywali skryptami. Skrypty mogą być osadzane w prosty sposób wewnątrz plików html. Wykonawcą skryptów JavaScript jest przeglądarka internetowa, która zawiera odpowiedni interpreter. Składnia języka JavaScript bardzo przypomina składnię języka C++. Istnieje kilka metod dołączania skryptu JS do kodu HTML strony WWW, które teraz kolejno zademonstrujemy.
|
||||||
Znacznik <script>Uruchom edytor Bluefish i zapisz stronę w przygotowanym wcześniej katalogu. W sekcji BODY strony WWW umieść następujący wpis:
Po wyświetleniu tej strony w przeglądarce Firefox pojawi się napis:
Witaj w JavaScript
Całość naszego skryptu umieszczona jest wewnątrz znacznika <script>. W znaczniku otwierającym powinniśmy dodać atrybut type="text/javascript". Atrybut ten określa język skryptu - w naszym przypadku jest to oczywiście JavaScript. Operacje wejścia/wyjścia w JavaScript różnią się od operacji we/wy w C++. Do wyprowadzania danych używamy tutaj obiektu document, który odnosi się do całej strony WWW. Obiekt ten posiada wiele funkcji, które umożliwiają obsługę różnych jego cech. Funkcja document.write(tekst) zapisuje tekst na stronie WWW. Tekst może zawierać znaczniki HTML, które posłużą do jego sformatowania. W naszym tekście posłużyliśmy się czterema znacznikami:
<b>...</b> - pogrubia objęty tekst
(b - ang. bold = pogrubiony)
Ostatnim elementem naszego skryptu jest pętla for, którą znamy z języka C++. Składnia tej pętli jest identyczna jak w języku C++. Oprócz pętli for, w JavaScript mamy pętlę while oraz do...while. Również w znany sposób możemy korzystać z instrukcji if(), switch(), instrukcji przypisania i modyfikacji. Pętla for wykonuje się 15 razy. W każdym obiegu wypisujemy numer obiegu oraz jedną spację. Tak umieszczony skrypt jest wykonywany w czasie przetwarzania strony WWW przez przeglądarkę internetową. W dokumencie html możemy osadzać dowolną ilość skryptów. Jeśli zawierają one kod bezpośredni, to zostaną wykonane w momencie ładowania i wyświetlania strony WWW - później zobaczymy jak wykonywać kod skryptu w odpowiedzi na działania użytkownika.
Jeśli wiele stron wykonuje taki sam skrypt, to zamiast umieszczać go w każdej z nich, możemy cały skrypt umieścić w pliku tekstowym i zapisać ten plik obok pliku strony. Pliki JavaScript posiadają zwykle rozszerzenia js i możemy je przygotować w zwykłym notatniku Windows. Przekopiuj do notatnika poniższy skrypt i zapisz go w tym samym katalogu co strona w pliku o nazwie "kod.js".
W skrypcie posługujemy się dwoma zmiennymi p oraz i. Zwróć uwagę, że zmiennych tych nie deklarowaliśmy, jak było to obowiązkowe w języku C++. Powodem jest to, iż zmienne w skryptach Java nie posiadają stałych typów, lecz typy dynamiczne. Zmienna może przechowywać tekst, liczbę lub obiekt. Zatem zmiennych nie musimy deklarować (chociaż istnieje odpowiednie polecenie var), ale przed pierwszym użyciem musimy nadawać wartość. Kolejnym uproszczeniem w stosunku do C++ jest brak obowiązku kończenia każdej instrukcji średnikiem (jego stosowanie nie jest też zabronione, więc jeśli jesteś do tego przyzwyczajony, stosuj średniki). Teraz zastąp poprzedni znacznik <script> na stronie WWW następującym tekstem:
W tym przypadku znacznik <script> nie obejmuje kodu JavaScript. Atrybut src (ang. source = źródło) informuje przeglądarkę, że tekst skryptu umieszczony jest w zewnętrznym pliku o nazwie kod.js. Plik ten zostaje pobrany, a zawarty w nim kod uruchomiony. Na ekranie otrzymamy 32 kolejne potęgi liczby 2.
Skrypt nr 2
|
||||||
Reakcja na zdarzeniaW podanych powyżej metodach dołączania skryptów do stron WWW kod programu jest uruchamiany w czasie ładowania strony, gdy przeglądarka analizuje jej kod i wyświetla ją na ekranie. Często jednakże chcemy wykonywać określone operacje w reakcji na działania użytkownika - np. ruchy myszką, naciśnięcia przycisków myszki lub klawiszy. Umożliwiają nam to tzw. zdarzenia, na które reagują znaczniki html. W odpowiedzi na określone zdarzenie przeglądarka może wykonać wskazany skrypt. Usuń ze strony html poprzednio wprowadzony znacznik <script>. W sekcji BODY dodaj następujący fragment:
Zdefiniowaliśmy trzy paragrafy. Do tworzenia paragrafów w języku HTML używamy znaczników <p>. Jeśli uruchomisz stronę w przeglądarce IE, to zobaczysz poniższy tekst:
TEKST NR 1 TEKST NR 2 TEKST NR 3
Zastąp każdy znacznik <p> wpisem:
Co zrobiliśmy? Otóż poinformowaliśmy przeglądarkę, że w przypadku dwóch wybranych zdarzeń związanych ze znacznikami <p> ma wykonywać wskazany kod JavaScript. Te dwa zdarzenia to:
onMouseOver - kursor myszki pojawił się ponad
powierzchnią dokumentu zajętą przez znacznik
onMouseOut - kursor myszki opuścił powierzchnię dokumentu zajętą przez znacznik.
W przypadku onMouseOver ma być wykonany kod: this.style.backgroundColor='Red'. Kod ten ustawia kolor tła paragrafu na czerwony. Przy onMouseOut ma być wykonany kod this.style.backgroundColor='White', który z kolei przywraca kolor biały dla tła paragrafu. Zatem gdy kursor myszki wchodzi w obszar paragrafu, tło tego paragrafu zmienia się na czerwone. Gdy kursor myszki wychodzi poza ten obszar, tło powraca do koloru białego. Zwróć uwagę, iż w skrypcie JS odwołaliśmy się do paragrafu za pomocą słowa this. Jest to słowo specjalne i w tym przypadku oznacza obiekt, który wywołał dane zdarzenie, czyli ten obiekt, a nie jakiś inny w dokumencie html. W obiekcie this odwołujemy się do własności style.backgroundColor (ważna pisownia dużych i małych liter!). Własność ta określa bieżący kolor tła. Nadajemy jej symboliczną wartość Red lub White, które odpowiednio zinterpretuje przeglądarka. Określenia kolorów są tekstem i muszą być umieszczone w apostrofach, gdyż cudzysłów został już użyty do samego skryptu JS.
Jeśli kod JS dla zdarzenia jest długi i często się powtarza, to możemy wykorzystać funkcję JavaScript. W tym celu osadzamy na stronie skrypt: (kod może być w zewnętrznym pliku, jak w poprzednim przykładzie, jeśli powtarza się na wielu stronach):
Teraz zastąpmy każdy znacznik <p> poniższym wpisem:
Zdarzenie onMouseOver wywołuje funkcję z1(), do której zostanie przekazany obiekt paragrafu wywołujący to zdarzenie. W tym paragrafie funkcja z1() ustawi tło zielone. Zdarzenie onMouseOut wywołuje funkcję z2() z obiektem paragrafu. Funkcja ustawi w tym paragrafie biały kolor tła.
UWAGA, gdy strona WWW zostanie już przetworzona w całości przez przeglądarkę, nie wolno stosować funkcji document.write(), gdyż usunie ona całą zawartość bieżącego dokumentu i zastąpi ją tekstem przesłanym do funkcji jako parametr. Wypisywanie tekstów na stronach uzyskujemy w takim przypadku inaczej - wykorzystując własności obiektów strony WWW.
Zastąp trzy paragrafy na stronie wpisem:
Następnie skrypt zastąp poniższym:
Funkcja z3() zmienia tekst wewnętrzny znacznika w zależności od zmiennej t. Zmienna t jest globalna i inicjowana na 1 podczas przetwarzania strony WWW przez przeglądarkę. Później każde wywołanie z3() zmienia ją na -1 lub 1. Własność innerHTML odnosi się do kodu HTML objętego znacznikiem. Zmiana powoduje zastąpienie wyświetlanego przez znacznik tekstu nowym tekstem. Funkcja ta jest wywoływana przez zdarzenie onClick, które powstaje po kliknięciu obszaru znacznika lewym klawiszem myszki.
|
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe