Varför syns min sida "som den ska" (som vanlig HTML) i Firefox, men som en klickbar lista i diverse färger i Explorer 6.0?
Nybörjarproblem med XHTML
13 svar · 462 visningar · startad av shun
Kod/länk?
Har antagligen med doc-type att göra, IE är rätt usel på att göra som man säger till den ;)
Jag gissar att du skickar sidan som "text/xml" eller "application/xhtml+xml". IE förstår inte riktigt att XHTML är XML.
IE förstår dig dock om du skickar sidan som "text/html", så antingen får du skicka sidan som "text/html" till alla webbläsare, eller så kan du genom HTTP-headers kolla efter vilka MIME-types läsaren förstår sig på, och utifrån det bestämma vilket format du ska skicka sidan i.
Jarvklo har skrivit en artikel om hur du kan sköta det genom Apache:
http://xhtml.nu/artiklar/webbteknik/lyssna2
http://hertz.1go.dk/cssidan.xhtml
Jag använder mig inte av en egen server(än) så det med Apache är ganska uteslutet
Servern som sidan ligger på nu vet inte hur den ska skicka filer med filändelsen ".xhtml", och väljer då att skicka dem som "text/plain", d.v.s. som ren text.
Om du ändrar filändelsen till ".html" kommer det förmodligen att skickas som "text/html", och då kommer sidan att visas som den ska.
Om det är en tröst, sidan fungerar inte som tänkt i moz heller ;)
Text blev det.
Testa köra koden från en sida på hårddisken istället, såg också att den muppade på den servern.
Hmmm.
MSIE "gissar" antagligen att sidan är skriven i ett XML-format (genom att titta på vad som ligger i filen - och innnehållet börjar ju med <?xml?> ) när du läser filen från din hårddisk eftersom ".xhtml" inte är en "konfigurerad filändelse" i ditt system...
Har du problem med att MSIE visar denna som en "klickbar tagglista" (dvs i dess XML-visningsläge) så löser du det enklast genom att använda ".html" som filändelse istället för ".xhtml" ;)
.xhtml som filändelse bör man bara använda från "rätt" konfigurerade webbservrar (se Dectgaps inlägg högre upp i tråden)
Men om man ska öva sig att gå över och skriva XHTML istället för HTML, ska man helt enkelt hitta en kompitabel server eller? Döper man om till HTML försvinner väl meningen med att koda annorlunda..
shun skrev:
Men om man ska öva sig att gå över och skriva XHTML istället för HTML, ska man helt enkelt hitta en kompitabel server eller? Döper man om till HTML försvinner väl meningen med att koda annorlunda..
Filändelsen har inget med själva innehållet att göra. Du kan ha en bild som har ändelsen .php (som ex. avatarerna i detta forum), en textfil som saknar ändelse osv. Du måste se till att filerna skickas till besökarna med rätt content-type (ex. text/html för xhtml1.0)
Vad innebär det i så fall att ha just filändelsen xhtml istället för html, om filerna läses likadant?
Filändelsen påverkar den Content-Type som skickas ut som i sin tur påverkar hur webbläsarna hanterar innehållet. Be din webbadministratör att lägga till stöd för filändelsen xhtml.
XHTML bör skickas som application/xhtml+xml, annars tolkas koden som html.
Du kan ange MIME typen med php:
<?php
header ("Content-Type: application/xhtml+xml; charset=iso-8859-1");
?>
Du kan också ta read på om klienten accepterar den mime typen, och skicka som text/html om den inte gör det. http://www.workingwith.me.uk/articles/scripting/mimetypes/
Att skicka XHTML som text/html är både meningslöst och felaktigt enligt mig. Visst, XHTML 1.0 får skickas som text/html, men bör skickas som application/xhtml+xml.
Du kan också göra två versioner av din sida, tex en index.xhtml och en index.html. Sedan länkar du till index (utan filändelse). Då används den versionen som klienten föredrar. Detta fungerar endast om servern har stöd för "content negotiation", vilket de flesta har.