MozillaPL.org - polskie centrum Mozilli

Główne menu:

Jak stanęło tak stoi

Dyskusje na temat standardów WWW i zgłoszenia stron niedziałających poprawnie w przeglądarkach z rodziny Mozilli (w tym Mozilla Firefox)

Moderator: Pomocy?!

Jak stanęło tak stoi

Postautor: Petrek » 26 maja 2002, 02:14

Przeglądarka: -

Witam!
Parę dni temu przesiadłem się z IE na Mozillę i jestem z niej coraz bardziej zadowolony :D (Gesty tak mi ułatwiają życie, że gdy uruchomię IE pod XP to czuję się jakbym cofnął się w czasie o pare ładnych lat).

Ale nie o tym chciałem.
Wszedłem właśnie na http://www.silvershark.com.pl/test/NOWY/index.php , na dole jest ramka z przesuwającymi się NEWS'ami . Zatrzymałem przewijanie i użycie przycisku START już go więcej nie uruchomiło. Nie pomaga odświeżanie strony ( tekst odrobinę drgnie, ale zaraz znowu się zatrzymuje). Niestety pod IE wszystko działa sprawnie (mówię niestety bo chciałbym definitywnie zrezygnować z tej przeglądarki). Co może być przyczyną takiego stanu rzeczy?

Aha, używam RC3PL.
Petrek
 

Re: Jak stanęło tak stoi

Postautor: Gość » 26 maja 2002, 10:49

Przeglądarka: -

Petrek pisze:Wszedłem właśnie na http://www.silvershark.com.pl/test/NOWY/index.php , na dole jest ramka z przesuwającymi się NEWS'ami . Zatrzymałem przewijanie i użycie przycisku START już go więcej nie uruchomiło. Nie pomaga odświeżanie strony ( tekst odrobinę drgnie, ale zaraz znowu się zatrzymuje).
...
Aha, używam RC3PL.


Na początek odrobina złośliwości :wink: : czy mógłbyś nam proszę wytłumaczyć, dlaczego Twoim zdaniem jest to błąd w polskim tłumaczeniu Mozilli? Nie jest? To dlaczego piszesz o tym na forum dotyczącym "różnic pomiędzy dystrybucją Mozilla.org a MozillaPL, kwestii tłumaczeń"? Zdecydowanie właściwym byłoby forum Nawigator.

A na poważnie: potwierdzam problem - build 2002051009 pod Linuxem, wersja angielska. Dokładnie wygląda to tak: newsy w DHTML można zatrzymywać i startować za pomocą przycisku start/stop - działają be zarzutu, do momentu aż:
1) kliknie się na link w newsach - w tym momencie newsy zatrzymują sie i juz nie można ich wystartować
2) otworzy się, a następnie zamknie jakiekolwiek okienko z narzędzi Mozilli, np. konsolę JavaScript - w tym przypadku również newsy zatrzymują się.

Informacje dodatkowe:
1) Przy wejściu na stronę w konsoli JavaScript pojawia się błąd "tlo1 has no properties"
2) Mozilla jest rozpoznawana jako Netscape6
3) Przeładowanie strony pomaga

Trudno powiedzieć, czy jest to błąd Mozilli czy błąd kodu na stronie. Jeśli ktoś ma zdrowie może debugowac dalej, aczkolwiek właściwszym rozwiązaniem byłoby zewangelizowanie autora strony, żeby lepiej testował swój kod pod Mozillą.

Wydaje mi sie, że na takie błędy najlepszym lekarstwem jest zaproponowane przez Domela promowanie Mozilli.

==
Gabriel
Gość
 

Postautor: Petrek » 26 maja 2002, 11:39

Przeglądarka: -

Gabriel pisze:Na początek odrobina złośliwości : czy mógłbyś nam proszę wytłumaczyć, dlaczego Twoim zdaniem jest to błąd w polskim tłumaczeniu Mozilli? Nie jest? To dlaczego piszesz o tym na forum dotyczącym "różnic pomiędzy dystrybucją Mozilla.org a MozillaPL, kwestii tłumaczeń"? Zdecydowanie właściwym byłoby forum Nawigator.


Przyznaję się do pomyłki :oops: , ale o 3 nad ranem mój mózg nie pracował już na "pełnych obrotach".
W ostatnim słowie proszę o łagodny wymiar kary :) .
Petrek
 

Problem wyjaśniony

Postautor: GabrielBaines » 26 maja 2002, 20:24

Przeglądarka: -

Samokrytyka przyjęta :) W nagrodę dostaniesz wyjaśnienie problemu.

Strona http://www.silvershark.com.pl/test/NOWY/newsy.php zawiera dwa błędy.

Błąd I to następujący kawałek:
Kod: Zaznacz cały
<script language="JavaScript" for="window" event="onload">
start();
</script>

Nie wiem, skąd autor wytrzasnął atrybuty 'for' i 'event', ale nie ma ich w specyfikacji HTML 4.01 i są w związku z tym ignorowane przez Mozille. Skutkiem tego funkcja start() jest wywoływana po prostu w czasie ładowania strony, kiedy nie ma jeszcze zdefiniowanych elementów tlo1 i tlo2, do których funkcja ta sie odwołuje. W konsekwencji dostajemy na konsole błąd "tlo1 has no properties"
Autor zapobiegawczo wywołuje funkcje start() drugi raz, tym razem poprawnie podając ją jako atrybut onLoad tagu body. To drugie wywołanie juz jest OK, tak więc jedynym skutkiem ubocznym Błędu I jest komunikat na konsoli.

Błąd II jest bardziej wyrafinowany; jego skutek to opisane przez Ciebie zatrzymanie przesuwania sie newsów.

Otóż błąd polega na tym, że autor strony tworzy niepoprawne property style.ypos i używa go nastepnie jako zmiennej tymczasowej do manipulacji na wartościach atrybutu style.top. Konkretnie chodzi tu o kawałek:
Kod: Zaznacz cały
tlo1.style.ypos=0;
tlo2.style.ypos=380;

oraz o funkcję slidetlo() odwołującą się do tych properties, w szczególności wykonujacą podstawienie efektem którego jest scrolling newsów:
Kod: Zaznacz cały
function slidetlo()
{
...
tlo1.style.top = tlo1.style.ypos;
...
tlo2.style.top = tlo2.style.ypos;
...
}


Obiekt tlo1.style jest typu CSSStyleDeclaration, którego properties są określone specyfikacją w3c i nie ma wśród nich oczywiście ypos.

Zmiana kodu strony tak, aby zamiast niepoprawnego property użyć po prostu zmiennej globalnej naprawia problem. Tak więc jeśli w całym kodzie strony zamienimy tlo1.style.ypos na zwykłą zmienną, przykładowo o nazwie tlo1_ypos, uwzględniając przy tym oczywiście kluczowe podstawienie, które po zmianie wyglądałoby:
Kod: Zaznacz cały
function slidetlo()
{
...
tlo1.style.top = tlo1_ypos;
...
tlo2.style.top = tlo2_ypos;
...
}

to wszystko już działa OK.

W tym momencie mały kamyk do ogródka Mozilli - wygląda na to (ale moge sie mylić), że nasza ulubiona przeglądarka pozwala na wykonanie podtsawienia pod niepoprawne propery, tyle że podstawioną pod property wartość szybko zapoimina (byc moze np. przy najbliższej operacji garbage collection). Takie zachowanie zdecydowanie utrudnia debugowanie probelmu.

Co ciekawe zgłoszony jest prawdopodobnie sciśle związany z problemem Request For Enhancement sugerujący obsługe (w sensie przechowywania) przez Mozillę niepoprawnych properties obiektów typu CSSStyleDeclaration.

Powyższa analiza jest dosyć pobieżna i byc może forumowi spece od DOM-u ją uściślą. Niemniej jednak wniosek jest taki, że drogi Petrku, jeśli chcesz aby newsy działały na Twojej przeglądarce, musisz napisać do autora (janek@silvershark.com.p) i poprosić o poprawienie w/w błędów.

==
Gabriel
GabrielBaines
Moderator
 
Posty: 450
Z nami od: 05 marca 2002, 21:42

Re: Problem wyjaśniony

Postautor: pbartecki » 26 maja 2002, 21:54

Przeglądarka: -

w o w ;)
pbartecki
 
Posty: 705
Z nami od: 03 lutego 2002, 18:31

Postautor: Petrek » 28 maja 2002, 01:37

Przeglądarka: -

Dzięki za wyjaśnienie.
Szkoda, że "odporność" na błędy kodu takich przeglądarek jak IE rozleniwiła twórców stron.
A co do autora strony to raczej trudno będzie się z nim skontaktować. Właśnie dostałem wiadomość:
    This is the Postfix program at host taurus.silvershark.com.pl.

    I'm sorry to have to inform you that the message returned
    below could not be delivered to one or more destinations.

    For further assistance, please send mail to <postmaster>

    If you do so, please include this problem report. You can
    delete your own text from the message returned below.

    The Postfix program

    <janek@silvershark.com.pl>: unknown user: "janek" :cry:

Life is brutal, and full of zasadzkas.
Petrek
 

Postautor: GabrielBaines » 29 maja 2002, 19:05

Przeglądarka: -

Petrek pisze:<janek@silvershark.com.pl>: unknown user: "janek"


No cóż, taki adres e-mail był wpisany w kodzie źródłowym strony. Pewnie juz gościa zwolnili. Możesz próbować pisać na jeden z adresów podanych w sekcji 'kontakt', ale szczerze mówiąc nie liczyłbym na to, że ktos się przejmie.

==
Gabriel
GabrielBaines
Moderator
 
Posty: 450
Z nami od: 05 marca 2002, 21:42


Wróć do Standardy WWW i źle działające strony

Kto jest online

Zarejestrowani użytkownicy: Google [Bot]

cron
Przejdź do powiązanej strony

Nawigacja:

Stopka: