W momencie kiedy Firefox 2 zaczyna powoli ustępować swojemu następcy odkryłem coś co nigdy mi się tak nie rzucało w oczy, ale w pewnej dość skrajnej sytuacji stało się nie lada problemem. Mianowicie Firefox 2 wywołuje zdarzenie onLoad wcześniej niż inne przeglądarki (IE7, Firefox 3, Opera i Safari, natomiast IE6 nie miałem okazji przetestować w tej kwestii, bo go zwyczajnie już nie posiadam ;)

Otóż Firefox 2 (oczywiście poprzednie wersje także) wywołuje zdarzenie onLoad PRZED załadowaniem obrazków ustawionych jako tła elementów. Rzuciło mi się to w oczy dopiero na stronie gdzie miał być wykonany preloader dla obrazków, a sama strona wyposażona była tylko w grafiki ustawione jako tło w CSS. No i okazało się, że w Firefoksie 2 obrazki związane z preloaderem ładują się przed załadowaniem się obrazków tła - nie muszę mówić, że efekt był daleki od oczekiwanego :)

Najgorsze jednak jest to, że nie znalazłem na ten problem żadnego sensownego rozwiązania - jedyne jakie znalazłem opierało się na zmianie ustawień samej przeglądarki, ale tam za bardzo nie ma dostępu z poziomu skryptu, zatem jedyne jak dotąd naprawdę skuteczne rozwiązanie odpadło.

Dlaczego o tym w ogóle piszę ? Po to by nikt mi nie mówił, że Firefox 2 i 3 nie mają żadnych istotnych różnic w obsłudze JavaScript, a właściwości gecko18 i gecko19 obiektu Browser w MooTools 1.2 to jedyne "akademickie bajerki" ;)

Oczywiście nie zmienia to faktu, że nadal nie znam eleganckiej metody na rozwiązanie problemu i pozostała mi metoda "na wyczucie" czyli warunek w stylu:

if(Browser.Engine.gecko18)
{
	(function(){
		// rozpoczęcie ładowania obrazków z preloadera
	}).delay(2000);
}

Nie jest to ani uniwersalne, ani ładne, ale w dużej ilości przypadków pomaga, bo z reguły tła CSS zdążą się załadować przed normalnymi obrazkami z preloadera.

A może ktoś zna inną, ładniejszą metodę na obejście tego problemu ?

Jeżeli chodzi o obiekt natywny Number to dzięki MooTools 1.2 zyskał on 5 nowych metod, dwie z nich - toInt oraz toFloat już poznaliśmy w poprzedniej części odnoszącej się do metod obiektu String. Dodatkowo istnieją też metody times (druga nazwa tej metody to each), round i limit.

Czytaj dalej...

W drugiej i ostatniej części kursu poświęconej obiektowi String zajmiemy się metodami konwertującymi ciągi znaków - rgbToHex, hexToRgb, escapeRegExp, stripScript, substitute, toInt oraz toFloat.

Czytaj dalej...

Operacje na ciągach znaków to dość często spotykane zadania, zwłaszcza podczas walidacji danych. W MooTools zaimplementowano kilka ciekawych rozszerzeń dla natywnego obiektu String, które z pewnością ułatwią wiele rzeczy.

W pierwszej części kursu poświęconej obiektowi String zajmiemy się metodami zmieniającymi wygląd ciągu znaków (capitalize, hyphenate oraz camelCase), czyszczącymi tekst ze zbędnych białych znaków (trim i clean) oraz badającymi zawartość danego ciągu (test i contains).

Czytaj dalej...

Obiekt Event w MooTools 1.2 posiada kilkanaście nowych właściwości oraz trzy metody. Te metody będą nam przydatne w wypadku operowania na elementach dokumentu oraz w połączeniu z poznanymi w poprzedniej części kursu możliwościami obietu Function.

Czytaj dalej...