to my HTML <head></head> tag. <meta http-equiv="X-UA-Compatible" content="IE=8" /> "> to my HTML <head></head> tag. <meta http-equiv="X-UA-Compatible" content="IE=8" /> "> to my HTML <head></head> tag. <meta http-equiv="X-UA-Compatible" content="IE=8" /> " />

Не магу пазбавіцца ад сумяшчальнасці?

Я выкарыстоўваю флоце чарчэння бібліятэкі. Гэта, здаецца, працуе выдатна ў IE8 і IE9, але праблема ўзнікае, калі ў IE9 Compatibility View - гэта не аказвае якой-небудзь з графікаў. Я падазраю, што гэта з-за HTML5 Canvas аб'ект выкарыстоўвае моцна, але я магу памыляцца. Я паспрабаваў зрабіць наступнае:

  • Add: <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> to my HTML <head></head> tag. I even tried IE=8 and IE=9 and that did not help either. My tag look like this:

    
    
    
        <meta http-equiv="X-UA-Compatible" content="IE=8" />
        ...
    </head>
    <body>
    ...
    </body>
    </html>
    
  • Because I was still seeing the problem, I added the following to my Global.asax.cs file:

    void Application_End(object sender, EventArgs e)
    {
       // Code that runs on application shutdown
        Response.Headers.Add("X-UA-Compatible", "IE=Edge");
    }
    

Я да гэтага часу сутыкаецца з праблемай. Памылкі я атрымліваю гэта:

HTML1202: http://intranetdomain/SampleProj/Default.aspx is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
Default.aspx
HTML1113: Document mode restart from IE7 Standards to IE9 Standards 
Default.aspx

Ёсць у любым выпадку на працягу паездкі гэта?

EDIT: Checking my response headers, adding that line in Global.asax.cs did not add them to my headers. I wonder why.

Загалоўкі адказаў:

Key Value
Response    HTTP/1.1 200 OK
Cache-Control   private
Content-Type    text/html; charset=utf-8
Server  Microsoft-IIS/7.5
X-AspNet-Version    4.0.30319
X-Powered-By    ASP.NET
Date    Thu, 27 Oct 2011 20:39:55 GMT
Content-Length  29088

EDIT 2: Відаць, Application_End быў няправільна падзея. Замест гэтага, робячы гэта ўводзіў элемент у загалоўку:

void Application_BeginRequest(object sender, EventArgs e)
{
    Response.Headers.Add("X-UA-Compatible", "IE=Edge");
}

Але сама праблема ўсё яшчэ захоўваецца.

16
@SliverNinja: Так. У мяне ёсць гэта як мой першы тэг. Таксама абнавілі сваё пытанне з дакладнай разметкай я выкарыстоўваю.
дададзена аўтар Legend, крыніца
@SliverNinja: Даданне яго ў Application_BeginRequest ўводзіцца элемент у загаловак, але праблема ўсё яшчэ захоўваецца.
дададзена аўтар Legend, крыніца
@ Крыс: Вы мелі рацыю. Даданне яго ў Application_BeginRequest , я не магу бачыць загалоўкі на баку кліента, але праблема па-ранейшаму захоўваецца :(
дададзена аўтар Legend, крыніца
@ Крыс: Гэта таму, што ў Application_Start метад, то Адказ аб'ект будзе не даступны для выкарыстання яшчэ.
дададзена аўтар Legend, крыніца
Application_End не з'яўляецца правільным падзеяй. Паспрабуйце PreSendRequestHeaders ( msdn.microsoft. кім/EN-US/бібліятэка/& hellip; )
дададзена аўтар SliverNinja - MSFT, крыніца
Калі працаваць, то ў адпаведнасці з папулярнай зваротнай сувязі тут ( StackOverflow .com/пытанні/637039/& hellip; ).
дададзена аўтар SliverNinja - MSFT, крыніца
вы паспрабуйце дадаць яго ў якасці першага тэга пасля <head> ? IE толькі здаецца, каб адказаць на гэта, калі гэта адбываецца першы ў спісе мета-тэгаў.
дададзена аўтар SliverNinja - MSFT, крыніца
@Legend: Так, я меў на ўвазе Application_BeginRequest. Application_End спрацоўвае, калі праграма зачыняецца ... Што-небудзь для запытаў, якія адбываюцца падчас выканання прыкладання не будуць рабіць.
дададзена аўтар Chris, крыніца
Ці ёсць прычына, чаму дадаць загаловак адказу ў метадзе Application_End? Гэта не павінна быць у метадзе Application_BeginRequest замест гэтага?
дададзена аўтар Chris, крыніца

4 адказы

Праблема можа быць звязаная з вашымі наладамі гледжання сумяшчальнасці Internet Explorer. Калі вы ідзяце ў меню «Сэрвіс», затым у «Compatibility View Settings», пераканайцеся, што «сайты інтрасеткі Паказаць ў рэжыме сумяшчальнасці» з'яўляецца не правяраецца. Вы можаце бачыць IE прымусіць вас у поле зроку сумяшчальнасці на аснове вашага хаста выяўлення як у інтрасеткі.

Звярніце ўвагу, што - у залежнасці ад версіі IE - вы, магчыма, прыйдзецца націснуць Alt левую клавішу для радка меню з'яўляецца, адкуль меню «Tools» могуць быць адкрыты.

28
дададзена
Так. Гэта сапраўды так. У той час як я магу змяніць гэта для сябе, я спрабую змяніць гэтую наладу (хоць я не мае асаблівага сэнсу). Я нават не ў стане выявіць гэты рэжым, так як гэтая праверка: , калі (.! $ .Browser.msie && ParseInt ($ browser.version) = 9) {Alert ( "! Ці не IE9"} робіць не злавіць той факт, што IE9 ў рэжыме сумяшчальнасці.
дададзена аўтар Legend, крыніца
Я не думаю, што вы можаце змяніць гэтую наладу сумяшчальнасці. Глядзіце каментары на stackoverflow.com/questions/3726357/… .
дададзена аўтар Jacob, крыніца
teelahti.fi/blog/… гэта вельмі карысны савет, што вырашыць маю праблему ўнутранага сервера сумяшчальнасці. Я паспрабаваў усё свае рашэнні да гэтага.
дададзена аўтар GeorgiG, крыніца
Калі вы працуеце на месцы пераканайцеся, што вы падрабіць «жывы» глядзіць URL праз hostfile і будзе думаць, што сайт з'яўляецца інтэрнэт-сайт.
дададзена аўтар sidonaldson, крыніца
Таму што гэта менавіта тое, што вэб-распрацоўшчык, які працуе ў/лакальны/хоча зрабіць - праглядзець сваю працу ў рэжыме эмуляцыі IE7 па змаўчанні. Брава, Microsoft. Працягвайце харчавацца клеем.
дададзена аўтар Imperative, крыніца

Вы можаце ўсталяваць параметры сумяшчальнасці непасрэдна на IIS. Калі пстрыкнуць на сайце і адкрыць Response Headers вы можаце дадаць X-UA-Compatible са значэннем IE = X, дзе X з'яўляецца вашай мэтавай версіі. Вы можаце устанавіць на ўзроўні сервера, а таксама. Але майце на ўвазе, калі ў вас ёсць некалькі сайтаў на адным полі, якія могуць паўстаць праблемы з тым. Altough вы маглі б прымяніць на ўзроўні сервера, а затым выдаліць успадкаваныя канфігурацыі ад узроўню сайта.

3
дададзена
Гэта працуе для мяне. Я выкарыстоўваю IIS Express лакальна для распрацоўкі сайта з jQuery 2. Ён не сумяшчальны з рэжымам IE 7, IE 10, здаецца, па змаўчанні для лакальнага сайта. Адкрыйце канфігурацыйны файл% USERPROFILE% \ Мае дакументы \ IISExpress \ Config \ ApplicationHost.config і <дадаць імя = "X-UA-Compatible" значэнне = "IE = 10" />. См msdn.microsoft.com/en-us/ бібліятэка/jj676913 (v = vs.85) .aspx
дададзена аўтар Cameron Taggart, крыніца
Гэта не можа перавызначыць IE мыслення сайт з'яўляецца інтранэт-сайт!
дададзена аўтар sidonaldson, крыніца

Два гады і два новыя выданне IE пазней, і гэтае пытанне IE8 па-ранейшаму выклікаюць праблемы!

Я выявіў, што, для ASP.Net прыкладанне нашай кампаніі, дадаўшы, што «X-UA-Compatible» у web.config, у вэб-старонках, або іх код ззаду, не зрабіў абсалютна ніякай розніцы.

Адзінае, што працаваў для нас быў ўручную зняўшы вылучэнне з «наборы Інтранэт дысплея ў рэжыме сумяшчальнасці" сцяжок:

Turn off Display intranet sets in Compatibility View

2
дададзена
Тое ж самае тут ... я не хачу, каб усе карыстальнікі зніміце гэты сцяжок :(
дададзена аўтар Dot_NET Pro, крыніца

Дзіўная рэч - калі вы выдаліце ​​ RUNAT = «сервер» , то мета-тэг будзе працаваць і кнопка знікне. BNut, вядома, не рэкамендуецца выдаліць RUNAT .

0
дададзена