Visit Mozilla.org

Zmiany w Gecko 1.9 wpływające na wyświetlanie stron

z Mozilla Developer Center, polskiego centrum programistów Mozilli.


Ta strona próbuje nam dać ogólny przegląd zmian pomiędzy Gecko 1.8 i Gecko 1.9, które prawdopodobnie będą miały wpływ na strony internetowe w ich zachowaniu i interpretacji.

Zobacz: Firefox 3 dla programistów.

Spis treści

[edytuj] Zdarzenia

[edytuj] Ustawianie słuchaczy wychwytujących zdarzenia

W Gecko 1.8, nie można było ustawić słuchaczy wychwytujących zdarzenia ładowania na obrazkach. W Gecko 1.9, zostało to poprawione poprzez poprawkę w błąd 234455. Może to jednak powodować problemy na stronach które mają niepoprawnie ustawionych słuchaczy zdarzeń na wychwytywanie zdarzenia ładowania. Zobacz dyskusję w błąd 335251. Aby naprawić ten problem, należy wyłączyć wychwytywanie zdarzenia ładowania na stronie która nie jest wyświetlana poprawnie.

Dla przykładu :

window.addEventListener('load', twojaFunkcja, true);

należy zmienić na:

window.addEventListener('load', twojaFunkcja, false);

Aby dowiedzieć się więcej na temat sposobu działania wychwytywania zdarzeń, zobacz DOM Poziom 2 Wychwytywanie zdarzeń

[edytuj] Metoda preventBubble została usunięta

W Gecko 1.8, istniała dla zdarzeń metoda preventBubble zapobiegająca ich bąbelkowaniu w górę. W Gecko 1.9 ta metoda została usunięta. Zamiast niej, należy skorzystać ze standardowej metody stopPropagation(), która działa także prawidłowo w Gecko 1.8. Umożliwiła to poprawka w błąd 330494. Zobacz także błąd 105280.

[edytuj] Kilka z pozostałych starszych zdarzeń API nie jest już obsługiwane

Zdarzenia window.captureEvents, window.releaseEvents, oraz window.routeEvent nie będą już dłużej wspierane (Przestarzały) w Gecko 1.9.

[edytuj] DOM

[edytuj] Jest teraz wyrzucany błąd WRONG_DOCUMENT_ERR podczas próby użycia węzła z innego dokumentu

Przed włączeniem węzłów pochodzących z zewnętrznych dokumentów do bieżącego dokumentu konieczne jest ich sklonowanie za pomocą metody importNode (lub zaadaptowanie przy użyciu metody adoptNode). Więcej informacji na temat własności ownerDocument znajduje się na liście najczęściej zadawanych pytań na temat DOM w witrynie W3C.

W silniku Gecko w wersjach starszych niż 1.9 używanie metody importNode oraz adoptNode nie jest wymuszane. Od wersji 1.9 brak adaptacji lub importu węzła przed jego użyciem w innym dokumencie spowoduje wystąpienie błędu WRONG_DOCUMENT_ERR (NS_ERROR_DOM_WRONG_DOCUMENT_ERR).





[edytuj] Środowisko

[edytuj] Funkcja intersectsNode została usunięta

W Gecko 1.8 funkcja intersectsNode mogła być użyta w celu sprawdzenia czy węzeł przeciął zasięg. Jednak wartości zwracane przez tę funkcję były mylące i rzadko użyteczne, dlatego została ona usunięta w Gecko 1.9. Zamiast niej użyj bardziej dokładnej i standardowej funkcji compareBoundaryPoints. Poprawka w błąd 358073 usunęła tę funkcję.

Zobacz dokumentację intersectsNode, aby dowiedzieć się jak użyć zamiast tego funkcji compareBoundaryPoints.

[edytuj] Funkcja compareNode została usunięta

W Gecko 1.8 funkcja compareNode mogła być użyta w celu sprawdzenia czy węzeł przeciął zasięg. Jednak wartości zwracane przez tę funkcję były mylące i rzadko użyteczne, dlatego została ona usunięta w Gecko 1.9. Zamiast niej użyj bardziej dokładnej i standardowej funkcji compareBoundaryPoints. Poprawka w błąd 358073 usunęła tę funkcję.

Zobacz dokumentację jak użyć compareNode zamiast compareBoundaryPoints.

[edytuj] HTML

[edytuj] Wiele błędów w kodzie <object> zostało poprawionych

Elementy object oraz embed nie potrzebują atrybutu type, aby się wyświetlić. Zmiana atrybutu src (elementu <embed>) lub atrybutu data (elementu <object>) za pomocą JavaScriptu działa teraz poprawnie. Nagłówek Content-Type wysyłany przez serwer (jeśli jest on wysyłany) jest teraz nadrzędny wobec atrybutu type elementu <object> jak w specyfikacji HTML (nie odnosi się to do elementu embed).