MozillaPL.org - polskie centrum Mozilli

Główne menu:

Detekcja obiektów w erze nowych przeglądarek

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?!

Detekcja obiektów w erze nowych przeglądarek

Postautor: Yano » 26 maja 2003, 11:48

Przeglądarka: -

Przyszedł do mnie newsletter z serwisu javascript na webreference.com. Między innymi było tam coś pod tytułem "Object Detection in the New Browser Age". Zainteresowany tym poszedłem zobaczyć co tam piszą. Tutaj jest link do artykułu.

I co sądzicie o czymś takim?
Yano
 
Posty: 858
Z nami od: 17 grudnia 2002, 10:32

Postautor: Gandalf » 26 maja 2003, 12:55

Przeglądarka: -

ze sa bez sensu. Co chcial autor powiedziec ludziom?
Ze detekcja browsera po DOMie jest zla? Przeciez napisal absurd.
Zalozeniem deketcji obiektowej jest to, ze aby znalezc grupe silnikow dla ktorych piszemy dany kod, musimy znalezc obiekt ktory istnieje w tej grupi i TYLKO w tej grupie.
Przyklad (podany przez autora)

if(document.all) - sprawdzamy czy jest kolekcja document.all, jesli jest to wiemy ze mamy doczynienia z Internet Explorerem lub czyms podszywajacym sie pod niego. Jesli uznajemy, ze grupa userow Opery jest na tyle duza, ze chcemy ja odseparowac to:

if(window.opera) {
} elseif(document.all){
}

I mamy osobny kod dla Opery osobny dla IE. Jesli chce znalezc grupe uzytkownikow NS4 to uzywam document.layers, grupe browserow DOMowych uzywam document.getElementById, i tak dalej, i tak dalej...

Autor wyraznie nie rozumie tej idei i rozumie ja tylko jako uzycie 'document.all' dla rozpoznania IE i sam sie zaskoczyl genialnym odkryciem, ze if(document.all) jest rozpoznaniem IE, a nie konkretnego IE i konkretnej platformy (dla takich rozpoznan uzywamy innych elementow w warunku).
Gandalf
 
Posty: 1802
Z nami od: 29 czerwca 2002, 04:37
Lokalizacja: Warszawa

Postautor: quiris » 26 maja 2003, 14:32

Przeglądarka: -

Gandalf pisze:if(document.all) - sprawdzamy czy jest kolekcja document.all, jesli jest to wiemy ze mamy doczynienia z Internet Explorerem lub czyms podszywajacym sie pod niego.


Małe sprostowanie: Opera obsługuje document.all niezależnie, czy się przestawia jako MSIE, czy też jako Opera. Tak więc nie można powiedzieć, że obsługa document.all to jest próba podszycia się pod przeglądarkę MSIE. Po prostu obsługuje ona nieco więcej - ponad standard. A czy to jest złe, to już inna historia.
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53

Postautor: Gandalf » 26 maja 2003, 14:48

Przeglądarka: -

Naprawde? Opera 6 (jestem tego pewien) przy wylaczeniuidentyfikacji jako IE nie obslugiwala document.all ...
Moze Opera 7 dziala inaczej, nie wiem. Chodzilo mi o to, ze document.all jest rozumiany jako pomysl IE, jesli chce sprawdz czy to na pewno IE to moge ot chociazby sprawdzic to if(document.all && !window.opera), prawda?
Gandalf
 
Posty: 1802
Z nami od: 29 czerwca 2002, 04:37
Lokalizacja: Warszawa

Postautor: quiris » 26 maja 2003, 18:17

Przeglądarka: -

Gandalf pisze:Naprawde? Opera 6 (jestem tego pewien) przy wylaczeniuidentyfikacji jako IE nie obslugiwala document.all ...

Masz rację. Opera 6 obsługuje document.all tylko przy ID=MSIE. Natomiast Opera 7 obsługuje document.all zawsze bez względu na ustawioną identyfikację.
Moze Opera 7 dziala inaczej, nie wiem.

No wiesz, taki poważny programista JavaScriptu nie wie jakie funkcje obsługuje bądź co bądź jedna z ważniejszych przeglądarek na rynku? Wstydziłbyś się... ;-)
Chodzilo mi o to, ze document.all jest rozumiany jako pomysl IE

Tak, a DOM level 0 rozumiany jest jako pomysł Netscape'a :-P
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53

Postautor: Gandalf » 26 maja 2003, 18:44

Przeglądarka: -

czesciowo na pewno.
Gandalf
 
Posty: 1802
Z nami od: 29 czerwca 2002, 04:37
Lokalizacja: Warszawa

Postautor: marcoos » 26 maja 2003, 18:45

Przeglądarka: -

Tak, a DOM level 0 rozumiany jest jako pomysł Netscape'a
:-P


Nie zrozumiałeś.

DOM level 0 to wspólna część pseudo-DOMów z IE 3/4 i Netscape 4. Kiedy powstawał, nie było jeszcze oficjalnej specyfikacji DOM.

A nawet jeśli to "pomysł Netscape'a", to co w tym złego? Nic. JavaScript to też pomysł Netscape Communications Corporation. Ustandaryzowany dopiero całkiem niedawno przez ECMA. A Opera zaimplementowała szczątki JS chyba przed specyfikacją ECMA-262, więc w równym stopniu powieliła (ówcześnie) niestandardowe rozwiązanie. (Hehe, Gotcha!)

Ponadto, Mozilla jest następczynią starszych wersji Netscape, więc obecność DOM lvl 0 nie powinna szczególnie dziwić.
marcoos
Moderator
 
Posty: 2227
Z nami od: 12 października 2002, 10:25
Lokalizacja: Wrocław

Postautor: quiris » 26 maja 2003, 19:18

Przeglądarka: -

marcoos pisze:Ponadto, Mozilla jest następczynią starszych wersji Netscape, więc obecność DOM lvl 0 nie powinna szczególnie dziwić.

Oj, wiem, wiem... :D
Zdaję sobie sprawę z wagi konieczności obsługi niestandardowych odwołań do obiektów (teraz właśnie cierpię wskutek tego, że w Operze coś skwasili i nie obsługuje prawidłowo instrukcji with w przypadku odwołań do obiektów o składni document.formName.elementName i nie mogę definiować nowych zleceń w LukasBanku :()

Co do document.all to moje osobiste odczucie jest takie, że więcej z tego jest problemów niż pożytku i wcale bym nie płakał jakby tego nie było w Operze.
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53


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

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: