Google Maps nie działa w XHTML-u!

11 sie

Mam potrzebę użycia Google Maps w pewnym serwisie. Po wklejeniu do tegoż serwisu odpowiedniego kodu do API Firefox w konsoli Firebuga zaczął pokazywać błędy:

Object cannot be created at this context" code: "9

Zacząłem wietrzyć coś, że może to mieć związek na granicy HTML/XHTML. No i zgadłem.

Panowie z Google dali ciała. Ich skrypty do map nie działają ani w Firefoksie 2.0.0.6 ani w Operze 9.22 w XHTML-u. Nie dziwne, że przykład ze strony z dokumentacją działa, bo XHTML-a to ma tylko w treści — jest serwowany jako text/html, a więc przeglądarki traktują go jak usiany błędami HTML (nie XML).

Po, kurde, krótkim guglowaniu znalazłem wątek. No i kur… wszystko jasne. Amatorszczyzna — tylko czyja bardziej? Microsoftu, że MSIE jest tak zacofany, że nie wie, co to jest XHTML, czy Google, które przecież może używać DOM również w HTML-u?

Kategorie: kpina Techblog webdev Tagi Technorati:

11 komentarzy do wpisu Google Maps nie działa w XHTML-u! RSS dla komentarzy

A <object type=„text/html”> powinien zadziałać. Z wyłączeniem IE, ale od tego są już komentarze warunkowe.

W ten sposób omijam błędy Google Adsense. ;)

mcv

Michał: Te, dobrze wymyśliłeś, nawet bardzo dobrze!

Dla MSIE (i wszystkich, które nie zadeklarują, że obsugują application/xhtml+xml) będzie i tak serwowany jako papka text/html, więc dla niego zrobi się normalną obsługę, bez <object/>. Acha, ten, właśnie, bo narazie to MSIE6 robi taką totalną sieczkę z tego mojego serwisu, że ma się wrażenie, że jego silnik został napisany przez początkującego dwunastolatka w Delphi. Za jakiś czas pokażę screenshoty. ;-)

Cieszę się, że mogłem pomóc. :)

Object linkujący do HTML jest identyczny z iframe. A o tym, że GMaps nie działa w XHTML, już pisałem dawno ;-)

A, tak co do sposobu jak to zrobić z tym serwisem: ja robię to tak, że standardowo wysyłam stronę w HTML4 dla przeglądarek rozumiejących application/xhmtl+xml, a dla IE tagzupę XHTML-podobną, bo do rysowania linii (polylines) IE używa VML-a, którego trzeba dodać jako przestrzeń nazw. I to jest chyba najrozsądniejsze wyjście. Jeśli nie używasz polylines to możesz śmiało w HTML4 pisać.

mcv

sunridin: HTML4 dla rozumiejących XHTML? A co dla nie rozumiejących? ;-)
I wiem, że mogę wysyłać HTML. Wolę XML, jest dla mnie wygodniejszy.

No przecież napisałem, dla IE wysyłasz tagzupę XHTML jako text/html, bo musisz dodać obsługę VML-a. Niestety przez Google wysyłanie poprawnego XHTML-a jest niemożliwe i m.in. dlatego XHTML się nie przyjął.

mcv

I w MSIE nie da się tego VML-a wysłać w HTML-u? Dziwne, zważywszy, że w HTML-u właśnie Microsoft również dodaje przestrzenie nazw (co czyni czasem np. Microsoft Outlook, gdy ktoś wysyła mail w HTML-u). Jakieś microsoftowe dziwactwa tam wkleja.

A wysyłanie poprawnego XHTML-a jest możliwe. Wystarczy spojrzeć co akceptuje przeglądarka. Ten jogger jest w XHTML-u i takoż dla Bota Google jest wysyłany „w trybie wstecznej zgodności”, czyli jako text/html. ;-) Moim zdaniem XHTML właśnie się przyjął, tylko mało kto wie, jak powinien taki prawdziwy XHTML wyglądać.

Szkoda mi tylko, że prawdopodobnie XHTML wymrze i zastąpi go nie XML-owy HTML5. No… chyba, że dla tego HTML-a pojawi się bardzo szybko szerokie wsparcie w postaci parserów różnej maści, wsparcia przez narzędzia XSLT, jakichś XPatho-podobnych klas w JS, walidatorów (syntaktycznych, jak np. zwykły xmlwf), itp.

W sumie nie wiem czy się nie da dla IE w HTML VML-a, jakoś tak dla poprawności dałem XHTML (heh, paranoja, przecież IE XHTML nie kuma).

O wysyłaniu poprawnego XHTML-a wiem, ale chodzi o skrypty JS Google’a używające document.write(). Dodatkowo nowy walidator W3C wysyła nic poprzez HTTP_ACCEPT (czyli jakie typy MIME akceptuje) i taka negocjacja powoduje wysyłania dla walidatora text/html.

XHTML nie przyjął się właśnie dlatego, bo mało kto wie jak go poprawnie serwować, nawet ludzie w W3C wysyłają stronę walidatora jako text/html — mówią, że ze względu na mootools.

Warto jeszcze przeczytać artykuł porneLa.

Dopóki będziemy używać HTTP, to xhtml będzie w nim niedoceniany. Kiedy już zaczniemy używać czegoś fajniejszego (jak XMPP), to dopiero będzie można odczuć jego zalety. Ale to tylko moje prognozy na głęboką przyszłość. ;)

Szkoda mi tylko, że prawdopodobnie XHTML wymrze i zastąpi go nie XML-owy HTML5.

A nie wychodzi HTML5 i wersja XMLowa – XHTML5?
Bo cos takiego pisalo, w ktoryms drafcie HTML5

Skomentuj

W komentarzach działa formatowanie Textile (pełne, z obrazkami).

Jeśli chcesz śledzić wątek komentarzy, a niekoniecznie chcesz dodawać swój, po prostu wyślij pusty komentarz. Nie zostanie on dodany.

kopipol@kopipol.kielce.pl info@repropol.pl