10

Nie można wyłączyć przycisku trybu kompatybilności IE w IE9.Jak wyłączyć przycisk trybu zgodności w IE9?

głowę i doctype wyglądać następująco:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!--[if lte IE 8]> 
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en" class="ie8"> 
<![endif]--> 
<!--[if IE 9]> 
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en" class="ie9"> 
<![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en"> 
<!--<![endif]--> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame --> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 
    <meta name="description" content="meta content here" /> 
    </head> 
    <body> 
    <!-- page content here //--> 
    </body> 
</html> 

Jak wyłączyć przycisk trybu zgodności w IE9?

Myślałem, że zrobiłem moje badania. Zastosowałem każdy rodzaj rozwiązania awaryjnego, aby wyświetlić wszystko dobrze w każdym IE od 7 do 9 i więcej.

Klient narzeka na tryb zgodności, który po aktywowaniu powoduje zakłócenia układu. Czy jest jakiś sposób, aby wyłączyć ten przycisk?

Odpowiedz

4
+0

Problem występuje nadal. Nawet jeśli zmienię to na: ' ' – Cyrax

+0

Czy sprawdziłeś pod kątem podobnych wiadomości w konsoli? Używasz warunkowych komentarzy do zadeklarowania, że ​​znacznik HTML podnosi dla mnie flagi. –

+2

Używam rozwiązania zaproponowanego przez Paula Irish'a jako sposobu radzenia sobie z kompatybilnością z X-browser. Analizowane są tylko znaczniki ukierunkowane na konkretną przeglądarkę. Brak komunikatów w konsoli. – Cyrax

18
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

Chrome Frame została przerwana przez Google jako Jana 2014 więc chrome = 1 część jest nie wymaga

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

Tryb "edge" normy siły (lub najnowszy silnik renderujący) w IE, a "chrome" w Chrome Frame.

Dalsze informacje dostępne są tutaj:

+4

W końcu udało mi się to zrobić (chociaż nie dodałem bitu 'chrome'), kiedy przeniosłem ten tag do * pierwszej rzeczy * po' ' – Michael

+1

Lokalizacja w' 'nie powinna mieć znaczenia. Ale znaczniki warunkowe, takie jak '' będą kolidować z właściwym znacznikiem meta, więc nie używaj ich. Meta, która powoduje, że przycisk trybu kompatybilności znika (testowany w IE10 na Windows 7) to '' – goddogsrunning

0

Problemem jest to, że gdzieś w kodzie js używasz przeglądarki kod jak document.all wąchania, window.ActiveXObject, navigatror.userAgent, attachEvent, detachEvent itp.

Zamień wszystko za pomocą kodu wykrywania funkcji za pomocą jquery.support, a przycisk zniknie.

1

Zauważyłem, że to uwarunkowane komentarze powodowały pojawianie się przycisku. Usunięcie tych i użycie wykrywania obiektów zamiast dodawać moje klasy html rozwiązało ten problem. Żadna ilość majsterkowania z rzeczami X-UA-Compatible nie usunie przycisku.

Używałem tego zestawu has.js wykrywa:

if (has("css-border-radius") && !has("input-attr-placeholder")) { 
    html.className += ' ie9'; 
} 

if (!has("css-border-radius") && !has("input-attr-placeholder")) { 
    html.className += ' lt-ie9'; 
} 

if (!has("css-box-sizing")) { 
    html.className += ' ie7'; 
} 
5

używałem komentarzy warunkowych w górnej części strony, aby osadzić klasę ie oparciu o wersji.(Np :)

<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]--> 

W rezultacie, mimo że było ustawienie znacznika meta X-UA-Compatible, przycisk Tryb Zgodność nadal było pokazane w IE.

Aby to naprawić, musiałem przenieść komentarze warunkowe na dół strony i użyć JS do zastosowania klas ie. Przycisk zgodności nie jest już wyświetlany w IE podczas przeglądania mojej strony.

<html lang="en"> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=8; IE=9; IE=10; IE=EDGE; chrome=1"> 
    <head> 
    <body> 
    <!-- ..Other content... --> 
    <script type="text/javascript"> 
    window.flagAsIE = function(version) { 
    var cls = document.body.parentElement.getAttribute('class'); 
    document.body.parentElement.setAttribute('class', "ie ie" + version + " " + cls); 
    }; 
    </script> 

    <!--[if lt IE 7 ]><script type='text/javascript'>flagAsIE('6');</script><![endif]--> 
    <!--[if IE 7 ]><script type='text/javascript'>flagAsIE('7');</script><![endif]--> 
</body> 
</html> 
Powiązane problemy