Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

vod.onet.pl vs IE11 (plus garść historii WWW)

Kilka osób na forum pytało o rozwiązanie problemu z Internet Explorerem 11 i stroną vod.onet.pl. Po wybraniu opcji oglądaj pojawia się obecnie komunikat "Twoja przeglądarka WWW (Mozilla) nie współpracuje z technologią Microsoft Silverlight, która jest niezbędna do odtwarzania filmów w naszym serwisie.", co jest z dwóch powodów nieprawdą.

Jednym z tych powodów jest fakt, że dźwięk z filmu (lub reklam) się pojawia, więc wygląda na to, że odtwarzacz Silverlight jednak działa. Drugą nieprawdą jest fakt, że przeglądarka Internet Explorer 11 to przecież nie jest Mozilla.

A może jednak?

Agent użytkownika

Agent użytkownika, z angielska user agent to ogólne określenie na produkt, którego używa użytkownik, aby dostać się do zawartości strony internetowej. Zazwyczaj jest to przeglądarka internetowa. Taka przeglądarka identyfikuje się mówiąc serwerowi HTTP o swojej nazwie i wersji za pomocą tzw. ciągu user agent.

Internet Explorer w wersji 11 znacząco zmienił swoją identyfikację w stosunku do wersji poprzednich. Dotychczas IE prezentował się np. jako:

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

Co w wolnym tłumaczeniu z komputerowego na nasze oznacza "kompatybilny z Mozillą 5.0*, Internet Explorer 9.0, na Windows 7, silnik renderujący Trident w wersji 5.0".

Obecnie, IE11 prezentuje się jako:

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

Co oznacza - "kompatybilny z Mozillą 5.0, na Windows 8.1, na warstwie kompatybilności WOW64, oparty o silnik Trident w wersji 7.0, wersja 11.0, "jakby Gecko"". "Gecko" to kodowa nazwa silnika renderującego w przeglądarce Mozilla Firefox (między innymi), czyli ogólnie mówiąc - IE11 udaje Firefoksa!

Czy widzicie gdzieś tutaj ciąg "IE" albo "MSIE" albo "Explorer"? Ano właśnie.

Niektóre strony internetowe chcą prezentować inną zawartość dla innych przeglądarek internetowych. Rozpoznaje się wtedy przeglądarkę (względnie silnik renderujący) przez proste wyszukiwanie słów takich jak "Gecko", "MSIE", "Opera" czy "Webkit" i serwuje nieco zmodyfikowany kod HTML dla niektórych.

W Microsofcie wyszli z założenia, że mają dość, że dla Internet Explorera 11, który od swojego czcigodnego** przodka, wersji 6, odszedł dość daleko w dziedzinie obsługi współczesnych standardów sieciowych, a tu nadal niektóre strony widząc IE dają mu upośledzoną wersję strony zamiast normalnej strony zgodnej ze standardami sieciowymi. Więc to zmienili.

I stąd problem - vod.pl próbuje potraktować IE11 jakby był Mozillą i stwierdza u tej fałszywej Mozilli brak obsługi Silverlight, więc prezentuje odpowiedni komunikat. Niestety - Silverlight jest, więc jak widać, coś poszło nie tak.

Proof-of-concept

Sprawdźmy zatem koncepcję. Używając klawisza F12 można uruchomić narzędzia dla programistów w IE11, w których są opcje "emulacji" (pod Ctrl+8)., gdzie jesteśmy w stanie zmienić ciąg user-agent którym przeglądarka się identyfikuje. Zmieniając to na przykład na Internet Explorera 9 restartujemy film na vod.pl i co się okazuje? Działa! (a przynajmniej reklama).

Z uwagi na to, że są to narzędzia dla programistów, to w przypadku błędów JavaScriptu pojawiają się też odpowiednie zatrzymania wykonywania skryptów, ale to nie jest najważniejsze - wystarczy kliknąć "Kontynuuj" (F5).

Skoro jednak działa głos, to może jednak film "dzieje się" pod planszą?

Usunięcie planszy informacyjnej

Za pomocą narzędzi dla programistów można również usunąć po prostu planszę informującą o braku Silverlighta i cieszyć się filmem.

Aby to zrobić wystarczy w narzędziach dla programistów wybrać opcję Konsoli (Ctrl+2) i wpisać w niej:

document.getElementsByClassName('slInstallPlayer')[0].style.display='none';

Plansza znika, a film (lub reklamy) działają.

A może tryb kompatybilności?

W Internet Explorerze od pewnego czasu dostępny jest tryb kompatybilności. Jedną z jego funkcji jest między innymi zmiana ciągu user-agent przeglądarki - do postaci zgodnej z bardzo starymi wersją IE***.

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.7)

Niestety - mimo, iż z testów wynika, ze rozwiązanie powinno działać - dla strony vod.pl nie działa i niezbyt wiem dlaczego.

Prawdziwe rozwiązanie

Tak - można się tego było spodziewać. Trzeba poinformować vod.pl o problemie i liczyć na poprawkę z ich strony. To nie jest problem z IE - tylko raczej z kombinacją skryptów vod.pl wraz z nową identyfikacją Internet Explorera.

Programiści vod.pl - prawdopodobnie wystarczy wykrywać ciąg "Trident" zamiast ciągu "MSIE".

Więcej informacji

  • * Internet Explorer mówi, że jest kompatybilny z Mozillą - to jest zaszłość z czasów naprawdę historycznych, kiedy Netscape dominowało, a ramki były nowością!
  • ** Niektórzy mogą się ze mną nie zgodzić, ale ja twierdzę, że IE6 był świetną przeglądarką! Oczywiście, jeśli mowa o roku 2001 :-)
  • *** Ciągi informujące o wersjach .NET CLR i niektórych dodatkowych zainstalowanych aplikacjach zostały usunięte w późniejszych wersjach IE - jednym z powodów jest oczywiście prywatność użytkownika. Właściwość JavaScriptu navigator.userAgent (gdzie ów navigator to również świadectwo historii WWW) prezentuje jednak "nowszy" ciąg, wraz z tymi dodatkami.
 

windows internet

Komentarze

0 nowych
sgj   11 #1 13.11.2013 22:26

Problemy są większe niż samo rozpoznawanie UA.

np.
"{exception} Obiekt nie obsługuje właściwości lub metody „attachEvent”"


http://msdn.microsoft.com/en-us/library/ie/ms536343%28v=vs.85%29.aspx
[attachEvent is no longer supported. Starting with Internet Explorer 11

mktos   10 #2 13.11.2013 23:12

@sgj: Kolejny fakt przemawiający za tym, że IE11 jest bardziej jak nie-IE, niż IE.

Dobra praktyka - wykrywanie funkcjonalności, a nie wykrywanie przeglądarki - poradzi sobie z tą na przykład zmianą...

wajdzik   6 #3 13.11.2013 23:56

To co tutaj przedstawiłeś to powód dla którego Czas Honoru pobieram przez wtyczkę do Opery lub VLC zamiast oglądać bezpośrednio na stronie vod.tvp.pl TVP przez to traci, bo nie zobacze ich reklam, ale skoro i tak jestem w stanie poprawnie obejrzeć tylko i wyłącznie reklamę która jest na starcie, a cała reszta filmu (i reklam w tzw. między czasie) działa zależnie od tego jak wiatr zawieje to wybieram inne rozwiązania.
Więc krótko i na temat - DRMy znów bardziej utrudniają życie legalnym użytkownikom, a piraci i tak sobie radzą pomijając wszelkie DRMy i reklamy.

Over   9 #4 14.11.2013 02:23

@wajdzik
Chcesz l;egalnie ale się nie da, więc co ci pozostaje?
Downgrade przeglądarki o ile się da, albo Pobieranie z innych źródeł nie do koncą oficjalnie legalnych, no ale nie którzy aby obejżeć ulubiony seriał w necie więle potrafią poświęcić ;)
No i z torrentów pobieranie to łatwiżna przy czym większość urzytkowników pobierze serial cały w HD 1.5GB w czasie krótszym niż wyświetlanie reklam przed i w trakcie serialu... o ile mają dostęp do szybkiego neta :)

mikolaj_s   14 #5 14.11.2013 07:24

Swoją drogą to co się pisze w user agent to jest chore.

dansys80   4 #6 14.11.2013 09:53

Dzięki, na pewno się przyda

Kpc21   10 #7 14.11.2013 23:48

Czyli historia zatoczyła koło. Kiedyś IE udawał "Mozillę" czyli Netscape, teraz sytuacja jest podobna.

A ten IE faktycznie poszedł do przodu. Skoro nawet coś takiego jak narzędzia dla programistów udostępniają...

sgj   11 #8 15.11.2013 00:18

@Kpc21
"A ten IE faktycznie poszedł do przodu. Skoro nawet coś takiego jak narzędzia dla programistów udostępniają..."

Ta, od 2006 roku lub wczesniej...

  #9 15.11.2013 12:44

Nie bardzo czaję problemu... przecież są inne serwisy, któe umożliwiają oglądanie naszych ulubionych seriali lub filmów on-line. vod.onet.pl jest jednym z wielu. Skoro jednak uzywają Silverlite'a, który nie bangla pod Linuxem lub pod IE11, to po co sie meczyć narzedziami developerskimi ? Zgodnie z zasadą, "Nie to Nie", idziemy do innego portalu, w którym bez zbędnych ceregieli i tak zobaczymy materiał na jaki mieliśmy ochotę :)

rradek   10 #10 15.11.2013 19:56

IE to jest dobre.... ale tylko do ściągnięcia swojej przeglądarki

  #11 20.11.2013 16:41

A wszystkiemu winien jest… javascript dostarczany przez MS.
http://archive.msdn.microsoft.com/SLsupportedUA
Ktoś od SilverLighta zapomniał, że inny dział w firmie tworzy od kilku lat przeglądarki i przestał wspierać nowsze wersje IE :P

  #12 26.12.2013 20:15

Podobnie sprawa przedstawia się z Esetem. Przy pobieraniu skanera antywirusowego Eset nie rozpo znaje IE.Twierdzi ,że jest używana inna przeglądarka.