Thomas Bandt

Über mich | Kontakt | Archiv

Browserweiche für ASP.NET

Ich bin gerade auf ein weiteres kleines, aber sehr geiles Feature von ASP.NET gestoßen: es bereitet einem sämtliche Client-Informationen über das Response-Objekt bis ins kleinste Detail auf. So braucht man nicht mehr den Header wie in ASP mehr oder weniger selbst zerschneiden, um etwa in die Info zu kommen, welchen Browser der User benutzt.

In ASP.NET benutzt man hierfier nun einfach

Request.Browser.Type.ToString()

was dann als Ergebnisse z.B. "Firefox" (Firefox 1.0), "IE6" (IE 6, XP SP 2), "Netscape" (Netscape 7.2), "Opera7" (Opera 7) oder "Netscape4" für selbigen Mist liefert.

Hervorragend :-)

Das habe ich gleich dazu benutzt, eine Quick&Dirty-Browserweiche zu basteln:

Response.ContentType = "text/css";
string browser = string.Empty;

switch(Request.Browser.Type.ToString().ToLower()) {
case "ie6": goto default;
case "netscape": goto case "firefox";
case "firefox": browser = "mozilla"; break;
case "netscape4": goto default;
case "opera7":
goto default;
default: browser = "ie"; break;
}

Response.Write(@"@import url(" + browser + "_layout.css);\n");
Response
.Write(@"@import url(" + browser + "_presentation.css);");

Das in eine css.aspx geschrieben lädt immer schön, je nach Browser und Bedarf ein entsprechendes Stylesheet. Nix Besonderes also - und genau das begeistert mich gerade... wenn man bedenkt, was das an Zeit zu früheren Workarounds spart...

Drauf gekommen bin ich übrigens, weil es einfach eine Katastrophe ist, Strict XHTML für alle Browser (alle im Sinne der neuesten Generation) zu produzieren, was auch nur einen Hauch anspruchsvoller als das heise.de-Layout sein soll... da mache ich jetzt für jeden Browser lieber eigene Stylesheets.

Kommentare

  1. Thomas schrieb am Montag, 31. Januar 2005 13:12:00 Uhr:

    Die Browserweise sieht wirklich quick (und dirty) aus -
    kann es sein, dass case bnetscape und firefox vertauscht sind?

    Gruß,
    Thomas.
  2. Thomas schrieb am Sonntag, 6. Februar 2005 14:54:00 Uhr:

    Nö.


« Zurück  |  Weiter »