---
title: "xhtml sniff script"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/152393-xhtml-sniff-script"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "nilleonline"
published: "2006-10-11T18:12:42.000Z"
updated: "2006-10-16T22:14:00.000Z"
replies: 11
views: 865
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/152393-xhtml-sniff-script"
---

# xhtml sniff script

## #1 — nilleonline, 2006-10-11T18:12Z

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?

Permalänk: https://www.webforum.nu/p/152393

## #2 — Troxy, 2006-10-12T07:45Z

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/>

Permalänk: https://www.webforum.nu/p/1882563

## #3 — nilleonline, 2006-10-12T18:23Z

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.

Permalänk: https://www.webforum.nu/p/1882783

## #4 — Troxy, 2006-10-12T19:02Z

Hm, på vilket sätt fungerar det inte? Vad händer? Händer inte, osv?

Permalänk: https://www.webforum.nu/p/1882796

## #5 — nilleonline, 2006-10-12T19:04Z

<http://www.nilleonline.com/test.asp>

Permalänk: https://www.webforum.nu/p/1882797

## #6 — Travoni, 2006-10-12T19:42Z

```
<%
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. :)

Permalänk: https://www.webforum.nu/p/1882813

## #7 — nilleonline, 2006-10-12T19:57Z

...

Permalänk: https://www.webforum.nu/p/1882821

## #8 — nilleonline, 2006-10-12T20:47Z

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.

Permalänk: https://www.webforum.nu/p/1882843

## #9 — Travoni, 2006-10-12T22:14Z

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"
%>
```

Permalänk: https://www.webforum.nu/p/1882884

## #10 — nilleonline, 2006-10-12T22:37Z

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..

Permalänk: https://www.webforum.nu/p/1882896

## #11 — Troxy, 2006-10-13T17:51Z

Du behöver ingen meta-tagg för MIME. Du sätter ju MIME-typ med Response.ContentType.

Permalänk: https://www.webforum.nu/p/1883171

## #12 — nilleonline, 2006-10-16T22:14Z

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..

Permalänk: https://www.webforum.nu/p/1884234

---

Tråden på webben: https://www.webforum.nu/amne/asp/152393-xhtml-sniff-script
