Koniec...

30 kwietnia, 2007

The blogosphere is ending. No more blogs. Blog apocalypse. The internet is still working, the world is fine. But you can’t write anymore. Write your last post. Make it a good one. What is the reason you blog? What is the last gem of knowledge you want to leave? What do you want to be remembered for? Who are you? What is the meaning of life? Haha…well not exactly but you get the point. Pour your heart into it.

Lanooz mnie zaprosiła to nie wypadało odmówić ;) [ nie bierzcie z niej przykładu :P ]

Czytaj dalej...

mootools - event.js

29 kwietnia, 2007

Plik event.js to kolejny z elementów frameworka mootools, który z pewnością można zaliczyć do bardzo przydatnych. Wraz z tą częścią kursu nauczymy się likwidować dwa ważne problemy związane ze zdarzeniami, a na koniec poskromimy klawiaturę przy użyciu JavaScript ;)

W pliku event.js mamy zawartą klasę Event zawierającą 4 metody (i konstruktor oczywiście) oraz kilkanaście właściwości dla obiektów typu event.

Czytaj dalej...

Mootools 1.1 - Element.js

22 kwietnia, 2007

Przed przejściem do lektury na temat pliku element.js polecam osobom, które o DOM mają małe pojęcie przeczytać trochę materiałów na ten temat. Osobiście polecam ten artykuł o obiektach DOM oraz wpisy Riddle'a na ten temat:

Plik element.js to moim zdaniem jeden z bardziej przydatnych elementów frameworka mootools. Udostępnia on nam funkcje pozwalające na manipulowanie drzewem dokumentu. Każdy kto pisał jakiekolwiek skrypty w JS wie, że operacje na DOM pozwalają na osiągnięcie większości pożądanych efektów. Właściwie bez operacji na DOM nie możemy zbyt wiele zrobić przy użyciu JS. Sam plik element.js udostępnia nam około 40 funkcji - niektóre to tylko aliasy standardowych funkcji służących do operacji na drzewie dokumentu, inne to funkcje wykonujące operacje na których wykonanie normalnie potrzebowalibyśmy wielu linijek kodu.

Czytaj dalej...

cimlik mi wczoraj dał cynk, że szukajka , którą udostępnia Jogger dla blogów ma błąd. Objawia się on tym, że po wpisaniu odpowiedniej frazy do wyszukiwarki pojawia się część kodu xHTML - u cimlika pojawiał się podwójny tytuł.

Trochę dziwny to błąd z serii "raz jestem, a raz mnie nie ma" bo cimlik usunął atrybut title z linka tytułu wpisu i już wszystko z tytułem ok. Ja jednak zauważyłem, że jak się wpisze frazę która zawiera się w jakimś linku we wpisie to zaczynają się dziać cuda - pojawia się kod xhtml od momentu wystąpienia tego słowa w atrybucie - wpiszcie na przykład słówko "external" w wyszukiwarkę i spójrzcie na linki.

Prawdopodobnie jest przeszukiwany cały kod wpisu, a nie tylko jego treść co jest przyczyną problemu. Tylko zastanawia mnie dlaczego u cimlika po wpisaniu frazy zawartej w tytule występował błąd, a po usunięciu znacznika title problem znikał, mimo że wciąż w linku w atrybucie znajduje się wyszukiwana fraza ? Dość dziwne zachowanie skryptu O.o

Przed snem się Wam wyżalę apropo moich dzisiejszych doświadczeń ze zdarzeniem onResize ;) (jakby ktoś nie wiedział to zdarzenie to występuje przy zmianie wielkości elementu ;) ).

Jakoś tak początkowo odczuwałem potrzebę wykorzystania tego zdarzenia w jednym ze skryptów (żeby nie kombinować z różnymi CSS dla różnych przeglądarek), ale szybko mi się ten pomysł odwidział. Dlaczego ? Zawiodłem się na IE (w sumie to nic dziwnego), ale o dziwo Opera też nie pokazała się z najlepszej strony O_o Oczywiście może to ja mam jakiś problem ze swoją wizją działania zdarzenia onResize - według mnie powinno ono wystąpić wtedy gdy użytkownik zmieni rozmiar elementu (w moim wypadku okna) i puści przycisk myszki. No i tak jest... ale tylko w Firefoksie ;) Opera generuje to zdarzenie także podczas zmieniania rozmiaru okna ( to znaczy wtedy gdy użytkownik jeszcze nie puści przycisku myszki ) i jest wtedy tych zdarzeń automatycznie wielokrotnie więcej... Natomiast IE... no tu muszę przyznać, że poczułem się rozbity inwencją twórczą programistów z Redmond - kliknięcie przycisku maksymalizującego okno (przy przywracaniu okna to samo) generuje uwaga.... 3 (słownie: trzy) zdarzenia onResize... Gromkie brawa dla tych panów... Żeby było jeszcze ciekawiej to ponoć IE udostępnia zdarzenie onResizeEnd (i onResizeStart też ponoć), ale jakoś nie udało mi się wywołać tego zdarzenia... Gdzieś nawet wyczytałem, że element, któremu chcemy przypisać to zdarzenie musi mieć właściwość contentEditable ustawioną na true, ale u mnie nic to nie zmieniło poza tym, że zrobiłem sobie notatnik z IE ;)

Przygotowałem prosty przykład, który odpalony pod różnymi przeglądarkami da Wam odpowiedź na to ile razy występuje zdarzenie onResize podczas zmian rozmiaru okna : PRZYKŁAD ;)

Jakby ktoś jeszcze po obadaniu tego przykładu nie rozumiał sensu tytułu to powiem tak - co by było gdyby zdarzeniu onResize przypisać jakąś bardziej skomplikowaną funkcję ? Parę zmian rozmiaru okna w IE i zwis gwarantowany (mi się zwiesił raz nawet na przykładzie który podałem, także wiecie... :D ).

Jak widać lepiej się pomęczyć i zrobić ile wlezie za pomocą CSS niż katować komputer użytkownika setkami zdarzeń onResize (parę zmian rozmiaru okna w IE i już 500 zdarzeń onResize wykonanych)... Czytałem co prawda, że można pokombinować z określeniem co ile może się wykonać to zdarzenie (Date,getTime i sprawdzanie czy jakiś określony czas wcześniej zdarzenie już nie miało miejsca), ale mi się udało co najwyżej ograniczyć ilość zdarzeń w Operze i sprawić, że w IE zdarzenie onResize występowało przy pierwszym przesunięciu kursora zaraz po wciśnięciu przycisku myszki ;) Generalnie nie wiem jak to się stało (bo z założenia miało to działać inaczej) ale efekt ciekawy ;] W każdym razie lepiej unikać tego eventu ;)

P.S.: Oczywiście, jeśli ktoś ma inne oczekiwania wobec onResize i chce by zdarzenie to występowało często to będzie narzekał na Firefoxa... W sumie to Opera ma chyba optymalne rozwiązanie, ale co z tego skoro każda przeglądarka interpretuje ten event inaczej ?