2011-12-28 11 views
8

I z jakiegoś powodu apeluję doctype najlepiej XHTML 1.0 Transitional, iz jakiegoś powodu za każdym razem, kiedy go otworzyć w programie Internet Explorer dostaję ...Wyłączanie widoku zgodności za pośrednictwem kodu w IE?

Browser Mode: IE9 Compat Zobacz
dokumentu Tryb: IE7 Standards

będę nawet to, co mój doctype wygląda z początku moich tagów głowy:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 

i tak, mam bliskie <body> i <html>.

Wszelkie pomysły?

+2

Czy sprawdziłeś, że sam znacznik jest zgodny z walidatorem? –

+1

Spójrz na to [artykuł w Wikipedii] (http://en.wikipedia.org/wiki/XHTML#Backward_compatibility). Myślę, że to jest właściwy sposób, aby to zrobić. Czy twój element 'html' wygląda jak pierwszy przykład? – FakeRainBrigand

+1

@JaredFarrish, dobry pomysł. To jest [walidator W3C] (http://validator.w3.org/). To nie znaczy, że stwardnienie rozsiane będzie dostosować się do tego chociaż. Wklej całą stronę w bezpośrednim wpisie lub podaj link. – FakeRainBrigand

Odpowiedz

23

Oto dokumentacja szukasz: http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx

Dołącz tym i IE odda jak w trybie IE9:

<meta http-equiv="X-UA-Compatible" content="IE=9" /> 
+11

jeszcze lepiej jest IE = Edge, to zapewni, że renderuje się w trybie najbardziej zgodnym ze standardami w przyszłych wersjach. –

+0

@Sologoub: Wspaniale, to jest to, co chcę zrobić, ale skąd mam wiedzieć, że jeśli strona internetowa jest wyświetlana w programie Internet Explorer 7, będzie ją wyświetlać w standardach Internet Explorer 7? To samo z Internet Explorer 8? A nawet nowsze wersje Internet Explorera? Dzięki! :) –

+2

@AaronBrewer - jeśli użyjesz IE = Edge, o którym wspomniałem, tak będzie. –

9

Domyślnie IE odda w trybie zgodności dla witryn w taki sam podsieć jako klient. Możesz to naprawić, wyłączając tę ​​funkcję w IE, przechodząc do Tools-> Ustawienia widoku zgodności i odznaczając wyświetlanie witryn intranetowych w trybie zgodności lub włączając metatag, o którym wspomniał Sologoub.

+0

Dziękuję, ale szukam raczej poprawki opartej na kodzie. –

+1

@AaronBrewer - podobno nie przeczytałeś ostatniej części mojej wiadomości, która sugerowała użycie metatagu. –

+0

Przepraszam, nie zrozumiałem wystarczająco dobrze twojej odpowiedzi. Dziękuję bardzo za pomoc! –

9

Też mam tę pewność. I znalazłem rozwiązanie:

wkładka meta tag w nagłówku HTML:

<meta http-equiv="X-UA-Compatible" content="IE=Edge"/> 

i ustawić equivalant nagłówka:

nagłówek ('X-UA-Compatible: IE = krawędzi') ;

lub jeśli używasz Zend Framework (lub dowolną ramy tej sprawy), coś takiego zrobi Zend_Controller_Front :: getInstance() -> getResponse() -> setHeader ('X-UA-Compatible', „IE = Edge ");

rozwiązaniem w tym linku:

http://www.enrise.com/2012/03/internet-explorer-9-compatibility-view-list/

Dzięki.

2

Czasami trzeba być bardziej kompleksowym, aby kierować wszystkie możliwe nadpisania użytkowników. Z pewnością dla aplikacji z jedną stroną, takich jak Meteor:

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE; Chrome=1" /> 

Mam nadzieję, że to pomoże.

+0

Miło wiedzieć, kto określasz wiele wersji. – radbyx

Powiązane problemy