Strona główna > HTML5, Internet Explorer > Internet Explorer 11 przestaje się przedstawiać serwerom jako Internet Explorer–IE walczy o odblokowanie dla siebie Internetu

Internet Explorer 11 przestaje się przedstawiać serwerom jako Internet Explorer–IE walczy o odblokowanie dla siebie Internetu

Nie jest tajemnicą, że dużo i dużych serwisów ma specjalne tagi po stronie klienta i serwera, które sprawdzają z jaką przeglądarką mają do czynienia zanim zaczną obrabiać HTML/CSS/JS. To aspekt historyczny, który w dużej mierze zakładał, że każda przeglądarka inaczej rozumie te elementy (HTML/CSS/JS) przez co potrzeba osobnych plików – a w rzeczywistości rozdzielał użytkowników Chrome/Opery/Firefoxa i Safarii od Internet Explorera, który w teorii wszystko wspierał najgorzej, inaczej i dla niego należało pisać osobne pliki. To tyle teorii.

Wykrywanie Internet Explorera dzisiaj

Po stronie JavaScript często wygladało to tak:

var isIE = navigator.userAgent.indexOf("MSIE") > -1;

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, „Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

A po stronie kodu C# po stronie ASP.NET mogło wyglądać tak:

var isIE = Request.UserAgent.IndexOf("MSIE") > –1; 

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, „Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 

Mniej więcej od Internet Explorer w wersji 2.0 (tak tak, wersji 2.0) Microsoft dodawał do User Agent czyli ciągu znaków jaki jest wkładany do każdego żądania do serwera MSIE.

Przykładowy ciąg znaków:

Internet Explorer 10

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)

a tu jeszcze przykład na Chrome

Chrome 25

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172

Co się zmienia?

Zmienia się kilka rzeczy, najważniejsze to to, że Microsoft usuwa z Internet Explorer kilka elementów języka JavaScript po których można było rozpoznać, że to jest Internet Explorer poza tym przestaje się przedstawiać jako MSIE.

Obecnie ciąg ten będzie wyglądał tak:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko

Z ciekawszych pozycji, które zostały oznaczone do usunięcia do finalnej wersji wersji 11.0 Internet Explorer to:

  • attachEvent i detachEvent –> dzisiaj często już zapomniane przez dobrze wspierany addEventListener
  • readyState i onreadystatechange –> często wyparte na rzecz jQuery’owego document ready
  • doScroll –> specyficzne dla IE przesuwanie zawartości w oknie


Z tego co wiem to pierwsza wersja IE, która usuwa elementy.

Obiekt navigator, a wytyczne W3C i HTML5?

Zaczęło mnie zastanawiać dlaczego IE przedstawia się jako Netscape, jeszcze dodatkowo pisze, że jest kompatybilny z Gecko (silnik Firefox). Odpowiedzi na te pytania są na stronie W3C, która standaryzuje HTML5 – link tutaj.

Obiekt nagivator w połączeniu z następującymi opcjami daje nam ciekawe odpowiedzi, wszystkie na szczęście ujęte poniżej:

image

Podsumowanie

Nie wstrzymałbym afery przez to, że Microsoft zamyka pewien rozdział w historii i próbuje wszystkich do tego przekonać. Moment wydania wersji 9.0 to był ten czas kiedy mocno było widać zmianę kierunku. Dzisiaj dostajemy wersję 11, która ma już zaimplementowane wszystkie najważniejsze standardy – w tym długo oczekiwany WebGL. Może warto zacząć traktować tę przeglądarkę z większym szacunkiem? Dla osób, które nie zamierzają, zawsze można zmienić obiekt westchnień w ciągu przedstawiającym się w żądaniach z MSIE na Trident (silnik renderujący strony w Internet Explorer).

  1. Brak komentarzy.
  1. No trackbacks yet.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d blogerów lubi to: