Jag har tänkt att använda ett sniff script på min sida. Det ska skicka ut xml till alla läsare som stödjer det och vanlig html till de som inte stödjer det. Jag hittar inget sådant script i asp, så om ni vet något så får ni gärna ge mig!
Jag vill inte skapa olika sidor för de 2 typerna utan vill bara att scriptet ska skriva ut olika doctypes beroende på stöd. Hur gör jag det? och hur blir det då med tex <br /> taggar? gör det någonting att de är avslutade i html?
TroxyMedlem sedan mars 20041 505 inlägg Du behöver inte oroa dig för taggar och doctypes. I princip alla webbläsare stödjer XHTML-kod, eftersom dom tolkar det som vanlig HTML-kod. Så du kan skicka ut XHTML-kod med tillhörande doctype utan att behöva oroa dig.
Problemet ligger istället i vilken MIME-typ man serverar sin sida som. Alla webbläsare har stöd för "text/html", men vissa (eller ja, IE) saknar stöd för "text/xml" eller "application/xhtml+xml".
Webbläsarna skickar ut en "HTTP_ACCEPT"-header som talar om vilka MIME-typer som dom accepterar. I ASP så kommer du åt den såhär:
Request.Servervariables("HTTP_ACCEPT")
I den strängen kan man söka efter om webbläsaren har stöd för någon xml-typ.
Här är ett ASP-script som kollar om en webbläsare har stöd för "application/xhtml+xml"
<%
If InStr(Request.ServerVariables("HTTP_ACCEPT"), "application/xhtml+xml") > 0
Or InStr(Request.ServerVariables("HTTP_USER_AGENT"), "W3C_Validator") > 0 Then
Response.ContentType = "application/xhtml+xml"
Response.Write("<?xml version=""1.0"" encoding=""iso-8859-1""?>" & VBCrLf);
Else
Response.ContentType = "text/html"
End If
Response.Charset = "iso-8859-1"
%>
Källa: http://www.456bereastreet.com/lab/developing_with_web_standards/sv/xhtml/
Tack! Men hur ska jag nu få det att fungera? Jag är välldigt grön på asp så. jag la koden högst upp i dokumentet, men det fungerade inte.
TroxyMedlem sedan mars 20041 505 inlägg Hm, på vilket sätt fungerar det inte? Vad händer? Händer inte, osv?
TravoniMedlem sedan okt. 20041 556 inlägg <%
If InStr(Request.ServerVariables("HTTP_ACCEPT"), "application/xhtml+xml") > 0 Or InStr(Request.ServerVariables("HTTP_USER_AGENT"), "W3C_Validator") > 0 Then
Response.ContentType = "application/xhtml+xml"
Response.Write("<?xml version=""1.0"" encoding=""iso-8859-1""?>" & VBCrLf);
Else
Response.ContentType = "text/html"
End If
Response.Charset = "iso-8859-1"
%>
Radbruten. :)
Nu har jag fåt det att fungera halvt! Det skrivs ut en xml deklaration om xml stöds men hur gör jag för att skriva ut olika mime-types?
sen vill jag ochså skriva ut
<?xml-stylesheet type="text/css" href="styles.css" media="screen" ?>
under xml-deklarationen, och en vanlig
<link rel="stylesheet" type="text/css" href="/Styles/siteseeker.css" />
om inte xml stödjs.
TravoniMedlem sedan okt. 20041 556 inlägg lägg till det då. ;)
<%
If InStr(Request.ServerVariables("HTTP_ACCEPT"), "application/xhtml+xml") > 0 Or InStr(Request.ServerVariables("HTTP_USER_AGENT"), "W3C_Validator") > 0 Then
Response.ContentType = "application/xhtml+xml"
Response.Write("<?xml version=""1.0"" encoding=""iso-8859-1""?>" & VBCrLf)
Response.Write("<?xml-stylesheet type=""text/css"" href=""styles.css"" media=""screen"" ?>" & vbCrLf)
Else
Response.ContentType = "text/html"
Response.Write("<link rel=""stylesheet"" type=""text/css"" href=""/Styles/siteseeker.css"" />" & vbCrLf)
End If
Response.Charset = "iso-8859-1"
%>
Jo så långt kom jag ochså, men problemet då är att <link rel=""stylesheet".. skrivs ut högst upp i dokumentet och inte innom head tagarna. och så skrivs inte meta-mime taggen ut alls heller..
TroxyMedlem sedan mars 20041 505 inlägg Du behöver ingen meta-tagg för MIME. Du sätter ju MIME-typ med Response.ContentType.
Tack för all hjälp! Nu återstår bara en sak så att det ska fungera. Hur fixar jag så att:
<link rel=""stylesheet"" type=""text/css"".. inte hamnar högst upp i dokumentet utan innom head-taggarna, om någon orkar hjälpa mig med det..