dabear Skrevet 28. juli 2004 Del Skrevet 28. juli 2004 (endret) <?php header('Content-ype: application/xml'); //nesten alle browsere untatt IE tolker dette echo <<<xml <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/xsl" href="copy.xsl"?> xml; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <!-- RESTEN AV DOKUMENT--> copy.xsl : <stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform"> <template match="/"> <copy-of select="."/> </template> </stylesheet> Nå vil IE tolke sida som application/xml søl om den tror sida er i text/html Endret 28. juli 2004 av dabear Lenke til kommentar
mikk- Skrevet 28. juli 2004 Del Skrevet 28. juli 2004 *ikke skjønne bæra* Men takk allikevel Lenke til kommentar
huf Skrevet 28. juli 2004 Del Skrevet 28. juli 2004 Sikkert hendig for noen og enhver, deribland ikke meg. Kanskje du vil være så snill å forklare litt nærmere? Lenke til kommentar
Cucum(r) Skrevet 29. juli 2004 Del Skrevet 29. juli 2004 (endret) Dette gjelder ikke akkurat topic, men: XHTML skal egentlig ikke sendes med MIME-type text/html, men application/xhtml+xml. IE's manglende støtte for XML har gjort at folk bare har brukt text/html i stedet for application/xhtml+xml, noe som har resultert i at W3C har tillatt at XHTML 1.0 Transitional og Strict kan, men det betyr ikke at det bør, sendes som text/html. Tingen er at XHTML blir ikke engang parset korrekt dersom text/html brukes som MIME-type, det blir behandlet som "tag-soup". Det at mange skryter av å ha siden sin validert XHTML 1.1, og bruker text/html, er rett og slett bare dumt, og feil, siden de fleste browsere bare ser tag-soup. Hvis du i ettertid kommer frem til at du vil sende siden med MIME-type application/xhtml+xml, vil du, mest sansynlig, få mange feil i XML-parsinga. Ett eksempel er at <!-- og --> inne i <script> og <style> skal byttes ut med <!--//--><![CDATA[//><!-- og //--><!]]> Hvis dette ikke gjøres, vil alt som står i mellom <!-- og --> bli behandlet som det egentlig skal, nettopp som en kommentar. Output av: <style type="text/css"> <!-- body { margin: 0; } --> </style> blir <style type="text/css"> </style> EDIT Siden IE ikke har støtte for MIME-typen application/xhtml+xml, må man "detecte" hvilken user-agent brukeren har. På bloggen min bruker jeg dette PHP-scriptet: <?php if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) { header("Content-type: application/xhtml+xml"); } else { header("Content-type: text/html"); } ?> Dette må du legge inn før all annen input, altså helst over DOCTYPE-deklarasjonen. En annen ting som er viktig å huske på, er at IE ofte ikke finner DOCTYPE, hvis du har mellomrom før den deklareres. (Denne PHP-koden gir ingen output i koden, da den blir kjørt før siden har nådd browseren.) Content-type bør, hvis det er mulig, sendes via en HTTP-header, i stedet for via HTML-elementet meta Endret 30. juli 2004 av SirIce Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå