Application/xhtml+xml i javascript


(Sitemaster) #1

jak to jest w html.

Pytanie, jak poprawić poniższy kod, a raczej skrypt js żeby działał poprawnie zarówno dla application/xhtml+xml jak i text/html?

map.openInfoWindowHtml(point, txt);

}

function load_google_maps() {

if (GBrowserIsCompatible()) {

map = new GMap2(document.getElementById("google_maps"));

map.setCenter(new GLatLng(52,14), 4);

map.enableDoubleClickZoom();

map.addControl(new GLargeMapControl());

map.addControl(new GMapTypeControl());

map.addControl(new GOverviewMapControl());

map.addControl(new GScaleControl());

map.hideControls();

GEvent.addListener(map, "mouseover", function(){map.showControls();});

GEvent.addListener(map, "mouseout", function(){map.hideControls();});

var baseIcon = new GIcon();

baseIcon.shadow = "ikony/cien.png";

baseIcon.iconSize = new GSize(20,20);

baseIcon.shadowSize = new GSize(28,20);

baseIcon.iconAnchor = new GPoint(10,0);

baseIcon.infoWindowAnchor = new GPoint(10, 0);

baseIcon.infoShadowAnchor = new GPoint(10, 0);

geocoder = new GClientGeocoder();

function createMarker(point,mapa) {

var icon = new GIcon(baseIcon);

icon.image = "ikony/"+dane[mapa].ikona+".jpg";

var marker = new GMarker(point, icon);

GEvent.addListener(marker, "click", function() {pokaz(mapa);});

return marker;

}

}

}

//


(Kutar 0) #2

Poczytaj tutaj, może któreś z tych rzeczy masz skopane: :slight_smile:

http://forum.php.pl/index.php?showtopic=77412

http://developer.mozilla.org/pl/docs/Po ... tach_XHTML


(mktos) #3

Po prostu Google Maps jest skopane i nie działa prawidłowo przy application/xml+xhtml.

A sens wysyłać text/html i tak jest taki, że lepiej się XHTML-a pisze :wink:


(Kutar 0) #4

że co?!

strona napisana w XHTML a wysłana jako text/html będzie interpretowana przez przeglądarkę jako HTML, więc nie osiągnie się tego co daje XHTML. Co prawda w wersji 1.0 jest to jeszcze dopuszczalen, ale w 1.1 jest już obowiązkowo nakazane przesyłanie strony jako application/xhtml+xml


(mktos) #5

Tak, strona wysyłana jako text/html dla przeglądarki będzie zupą tagów. Tak, XHTML 1.1 nie powinno być już wysyłane w ten sposób. Ale powiedz to Google Maps, które krytycznie opiera się o document.write(), które w prawdziwym XHTML nie ma prawa istnieć (skądinąd innerHTML też).

http://groups.google.com/group/Google-M ... 79?lnk=gst

Ale MOIM ZDANIEM po jakimś przyzwyczajeniu lepiej się pisze już XHTML niż HTML, bo ma mniej niekonsekwencji (choćby to, że każdy znacznik musi być zamknięty - a w HTML taki nie ma zamknięcia, jest nieprawidłowe), zwłaszcza dla kogoś, kto równolegle pisze strony w prawidłowym niejako XHTML czy cokolwiek w XML. I dlatego piszę XHTML 1.0 Strict wysyłany jako text/html, chociaż w gruncie rzeczy powinienem pisać w HTML 4.01 Strict. I o to mi wyżej chodziło :wink:

Jeszcze a propos tego XHTML 1.1 i jego typu MIME - specyfikacja wyraźnie twierdzi, że "should not" dla text/html, a nie "must not".

I jeszcze o GMaps:

http://mcv.jogger.pl/2007/08/11/google- ... w-xhtml-u/


(Kutar 0) #6

Na Google jest sposób, wystarczy chwila z Google, chociażby: http://segv.jogger.pl/2006/12/01/adsens ... orkaround/

widziałem kilka sposobów jak poradzić sobie z application/xhtml+xml i Google, powyżej jeden z przykładów.

Nie łap specyfikacji za słówka:

po pierwsze jeśli zakodujesz w xhtml 1.1 text/html i przewalidujesz, dostaniesz błąd z oficjalnego walidatora W3C

po drugie, strona zostanie zinterpretowana przez przeglądarkę jako HTML, a nie XHTML. Możesz to sobie sprawdzić najpierw wysyłając jakąś stronę jako text/html a potem poprawnie (tylko pamiętaj, aby wysłać w nagłówku typ mime). Zauważysz różnicę.

@EDIT:

kolejny link z google:

http://www.cssplay.co.uk/menu/adsense.html


(mktos) #7

Tak, "ramka" (no, powiedzmy) z innym typem MIME jest rozwiązaniem. Tutaj jest napisane dla Google AdSense, ale i dla Maps powinno zadziałać rzeczywiście. Jednak czy IE to zrozumie? Nie sprawdzałem, ale znając życie to nie zdziwiłbym się, gdyby nie :wink: [update]

Oczywiście, że wiem, że wysyłając stronę XHTML jako text/html zostanie ona nieco inaczej pokazana, oraz walidator pokaże komunikat (w sekcji "Potential Issues"). Dlatego negocjacja typu MIME jest dobrą rzeczą.

Chyba koniec dyskusji, bo obydwaj się tak naprawdę zgadzamy :slight_smile:


(Kutar 0) #8

Jasne, przez IE trzeba kombinować, żeby jako tako to było. Sam tak robiłem. Dla IE text/html, a dla przeglądarek prawidłowo wysyłałem application/xhtml+xml :slight_smile:

:slight_smile:

Swoją drogą, to chyba oddaliliśmy się od głównego tematu,

api - jest coś nowego w sprawie?


(Sitemaster) #9

Nic nowego.

Wiem już przynajmniej że to wina zpartolonych skryptów googla.

narazie mam ustawione text/html i waliduje się dobrze ale w wolnej chwili sprawdzę ten pomysł z object.