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?
Detekcja obiektów w erze nowych przeglądarek
Moderator: Pomocy?!
Posty: 8
• Strona 1 z 1
Detekcja obiektów w erze nowych przeglądarek
Przeglądarka: -
- Yano
- Posty: 858
- Z nami od: 17 grudnia 2002, 10:32
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).
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
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
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?
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
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
- quiris
- Posty: 659
- Z nami od: 31 lipca 2002, 06:53
Przeglądarka: -
Tak, a DOM level 0 rozumiany jest jako pomysł Netscape'a
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
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...
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
Posty: 8
• Strona 1 z 1
Wróć do Standardy WWW i źle działające strony
Kto jest online
Zarejestrowani użytkownicy: Baidu [Spider], Google [Bot]