mootools - utility.js

10 kwietnia, 2007

Naszych teoretycznych rozważań na temat mootools ciąg dalszy ;) Plik utility.js wchodzący w skład jądra frameworka wydaje mi się ciekawszy od pliku moo.js, ponieważ daje nam do dyspozycji kilka ciekawych funkcji, a dodatkowo będziemy mogli sprawdzić jakiego typu przeglądarki używa osoba oglądająca stronę (nie muszę chyba pisać, że jest to dość przydatne ;) ). Ale przedtem musimy się zapoznać z funkcjami tegoż pliku.

Funkcji jest pięć - wszystkie charakteryzują się przedrostkiem "$" przed nazwą. Oto one:

  • $type - zwraca typ parametru podanego jako argument tej funkcji,
  • $chk - pozwala sprawdzić czy dany obiekt istnieje,
  • $pick - ma za zadanie sprawdzić czy dany obiekt istnieje. Jeżeli tak to zwraca go, w przeciwnym wypadku zwróci drugi obiekt podany w parametrach funkcji,
  • $random - służy do wygenerowania pseudolosowej liczby z dwóch podanych jako parametry funkcji,
  • $clear - służy do likwidowania opóźnień i interwałów czasowych dla wykonywanych funkcji.

$type

Funkcja $type zwraca typ parametru podanego jako argument tej funkcji. Używamy jej w następujący sposób:

var typ = $type(obiekt);

W powyższym wypadku zmienna typ może przyjąć następujące wartości:

  • element – jeśli parametr jest węzłem drzewa DOM
  • textnode – gdy parametr jest węzłem tekstowym drzewa DOM
  • whitespace – jeżeli parametr jest węzłem zawierającym białe znaki
  • array – jeśli parametr jest tablicą
  • object – wtedy gdy parametr jest obiektem
  • string – gdy parametr jest ciągiem znaków
  • number – jeżeli parametr jest liczbą
  • boolean – jeśli parametr jest wartością logiczną
  • function – kiedy parametr jest funkcją
  • false - (wartość logiczna, a nie ciąg znaków) gdy parametr nie jest zdefiniowany lub nie należy do żadnego z powyższych typów.

I parę przykładów zastosowania tej funkcji:

var liczba = 20;
var typ = $type(liczba);
alert(typ);

Powyższy kod spowoduje pokazanie alertu z napisem "number".

var cos_co_nie_istnieje;

var typ = $type(cos_co_nie_istnieje);
alert(typ);

W tym wypadku pojawi się alert z napisem "false", ponieważ zmienna cos_co_nie_istnieje nie ma zdefiniowanej wartości.

var typ = $type(document);
alert(typ);

W powyższym wypadku zobaczymy alert z treścią "object".

I tak dalej... Przejdźmy do kolejnej funkcji jaką jest $chk.

$chk

Funkcja $chk pozwala sprawdzić nam czy dany obiekt istnieje lub jest zerem. Składnia funkcji jest podobna do tej z funkcji $type :

var istnieje = $chk(obiekt);

Zmienna istnieje może przyjąć w tym wypadku jedną z dwóch wartości logicznych:

  • true – jeżeli obiekt istnieje lub jest zerem
  • false – jeżeli obiekt nie istnieje (i nie jest zerem)

Na przykład:

var zmienna;
var istnieje = $chk(zmienna);
alert(istnieje);

W powyższym wypadku otrzymamy oczywiście alert z treścią "false".

$pick

Funkcja $pick sprawdza najpierw czy istnieje obiekt podany jako pierwszy argument funkcji. Jeżeli istnieje to jest on zwracany, inaczej zwracany jest obiekt podany jako drugi parametr.

I przykład użycia :

var zmienna1;
var zmienna2 = 2;
alert($pick(zmienna1,zmienna2));

Powyższy kod spowoduje pokazanie alertu z treścią "2".

Gdybyśmy zmienili kod na taki:

var zmienna1 = 5;
var zmienna2 = 2;
alert($pick(zmienna1,zmienna2));

To otrzymalibyśmy alert o treści "5".

$random

$random to funkcja zwracająca pseudolosową wartość z podanego w postaci dwóch argumentów przedziału. Zwracana wartość to oczywiście liczba całkowita. Składnia funkcji wygląda następująco:

var minimalna = 10;
var maksymalna = 20;
alert($random(minimalna,maksymalna));

Powyższy kod spowoduje pokazanie jako treści alertu pseudolosowej liczby z przedziału obustronnie domkniętego <10,20> .

$clear

Funkcja $clear służy do likwidowania opóźnień i interwałów czasowych dla wykonywanych funkcji. Jeśli chcemy by dana funkcja nie wykonała się z zadanym wcześniej opóźnieniem, bądź też chcemy przerwać jej regularne wykonywanie się co dany okres czasu to stosujemy wtedy właśnie funkcję $clear, której składnia wygląda następująco:

opoznienie = $clear(opoznienie);

Gdzie zmienna opóźnienie to wcześniej zadeklarowana zmienna przechowująca czas opóźnienia bądź też czas co jaki wykonuje się dana funkcja.

Sprawdzanie typu przeglądarki

I na koniec opisu pliku utility.js to co wydaje mi się najciekawszą funkcjonalnością udostępnianą przez ten plik - możliwość sprawdzenia, jakiego typu przeglądarki używa użytkownik.

Plik utility.js dodaje do obiektu window następujące właściwości:

  • window.ie - przyjmuje wartość logiczną true gdy przeglądarka jest jakąkolwiek wersją IE
  • window.ie6 - przyjmuje wartość logiczną true gdy przeglądarką jest IE6
  • window.ie7 - przyjmuje wartość logiczną true gdy przeglądarką jest IE7
  • window.khtml - przyjmuje wartość logiczną true gdy przeglądarką jest Safari lub Konqueror
  • window.gecko - przyjmuje wartość logiczną true gdy przeglądarką jest Firefox, Mozilla lub inna przeglądarka oparta na Gecko

Sprawdzenie typu przeglądarki ogranicza się do wykonania operacji lub serii operacji typu:

var przegladarka = $chk(window.ie));

Jeżeli zmienna przegladarka przyjmie wartość logiczną true, oznaczać to będzie, że użytkownik korzysta z Internet Explorera. Oczywiście możemy później kontynuować to sprawdzanie poprzez dodanie kilku instrukcji warunkowych wykonywanych aż do momentu otrzymania wartości true. Jeśli chodzi o Operę to nie ma jej w tych właściwościach ponieważ renderuje ona strony bardzo podobnie do przeglądarek opartych na Gecko, więc raczej nie ma potrzeby wyróżniania jej na liście przeglądarek. Powyższe właściwości są z pewnością niezwykle przydatne gdy nasza strona korzysta z kilku arkuszy styli, lub różnych kodów JS dla różnych przeglądarek.

Przejdź do opisu pliku array.js

Komentarze do wpisu "mootools - utility.js":

1. Lookzovt napisał(a):
08 maja 2007, 13:00:55

Drobny błąd w tekście: # window.ie – przyjmuje wartość logiczną true gdy przeglądarka jest jakąkolwiek wersją IE # window.ie6 – przyjmuje wartość logiczną true gdy przeglądarką jest IE6 # window.ie7 – przyjmuje wartość logiczną true gdy przeglądarką jest IE6

Oczywiście w drugim przypadku powinno być IE7.

BTW dzięki za kurs :-)

2. Dziudek napisał(a):
08 maja 2007, 13:06:03

Poprawione ;) Przy kopiowaniu tekstu zapomniałem zmienić ;]

Dodaj komentarz:

Textile Lite włączony ( szczegółowy opis znaczników ):
*strong* | # lista numerowana | * lista wypunktowana | _em_ | __italic__ | "link":http:// | bq. cytat.