unobtrusive scripting – technika pisania dyskretnych skryptów
metody:
- graceful degradation – kontrolowana degradacja
- progressive enhancement – progresywne ulepszanie
- unikanie rozwiązań zależnych od przeglądarki
- pisanie dokumentacji
- użyteczność
- wzorce projektowe
- dostępność – dla wszystkich użytkowników, również niepełnosprawnych
obszary:
- treść – słowa, tekst oznaczony poprzez HTML
- prezentacja – wygląd i układ, formatowanie tekstu, kolor, grafika poprzez kaskadowe arkusze stylów CSS
- zachowanie – interakcje ze stroną, efekt hover, wypełnianie pól, itp – poprzez JS oraz PHP
Separacja struktury od wyglądu i od funkcjonalności.
zamiast:
<body onLoad="Startup"();">
dajemy:
window.onload=Startup;
Model zdarzeń W3C
dodanie funkcji obsługi zdarzeń:
metoda addEventListener() – dołączenie funkcji obsługi zdarzeń do dowolnego zdarzenia dowolnego elementu.
window.addEventListener(’load’, Startup, false);
parametry:
- ’load’ – nazwa zdarzenia bez prefiksu on
- Startup – funkcja obsługująca zdarzenie
- zaawansowany znacznik, jak powinna być traktowana większa liczba zdarzeń (false działa w większości zastosowań)
dołączamy tak dowolną liczbę funkcji.
dla IE 6 i 7 – działa metoda window.attachEvent(’onload’, Startup);
parametry:
- ’onload’ – nazwa zdarzenia z prefiksem on
- Startup – funkcja obsługująca zdarzenie
usunięcie funkcji obsługi zdarzeń
metoda removeEventListener() – usunięcie funkcji obsługi zdarzeń.
window.removeEventListener(’load’, Startup, false);
dla IE 6 i 7 – metoda window.detachEvent(’onload’, Startup);
Sprawdzenie czy przeglądarka obsługuje daną metodę – feature sensing – wykrywanie funkcjonalności:
obj = document.getElementById('myButton'); if (obj.addEventListener) { obj.addEventListener('click', ClickMe, false); } else if (obj.attachEvent()) { obj.attachEvent('onclick', ClickMe); } else { obj.onclick = ClickMe; }
–
Hope this helps and happy coding :)
Zobacz jeszcze
this JavaScript
odwołanie się do elementu zaznaczonego w form do zmiany koloru tekstu lub tła strony: <!DOCTYPE html> <html id="b1"> <head> <script> function...