Ką daro <meta http-equiv="X-UA-Compatible" content="IE=edge">?

Koks skirtumas, jei vienas tinklalapis prasideda žodžiais

<!DOCTYPE html> 
<html> 
  <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 

ir Jei puslapis prasideda žodžiais

<!DOCTYPE html> 
<html> 
  <head> 
     <!-- without X-UA-Compatible meta -->

Jei skirtumo nėra, manau, kad galiu tiesiog ignoruoti X-UA-Compatible meta antraštę, nes tiesiog noriu, kad ji būtų atvaizduojama standartiniu režimu visose IE versijose.

Sprendimas

2015 m. spalio mėn. atnaujinimas

Šis atsakymas buvo paskelbtas prieš kelerius metus, o dabar, atsižvelgiant į "Microsoft" atliktus naršyklių pakeitimus (daugiau apie juos toliau), klausimas iš tikrųjų turėtų skambėti taip: * ar turėtumėte apskritai svarstyti galimybę savo svetainėje naudoti X-UA-Compatible žymą? Priklausomai nuo to, kokias "Microsoft" naršykles palaikote, jums gali nereikėti toliau naudoti X-UA-Compatible žymą. Jei reikia palaikyti IE9 arba IE8, rekomenduočiau naudoti šią žymą. Jei palaikote tik naujausias naršykles (IE11 ir (arba) "Edge"), tuomet svarstyčiau galimybę apskritai atsisakyti šios žymės. Jei naudojate "Twitter Bootstrap" ir norite pašalinti patvirtinimo įspėjimus, ši žyma turi būti rodoma nurodyta tvarka. Papildoma informacija pateikiama toliau:

Metažyma X-UA-Compatible leidžia svetainių autoriams pasirinkti, kokia "Internet Explorer" versija turėtų būti atvaizduojamas puslapis. IE11 pakeitė šiuos režimus; žr. toliau pateiktą IE11 pastabą. IE11 pakeitusi naršyklė Microsoft Edge X-UA-Compatible metažymą palaiko tik tam tikromis aplinkybėmis. Žr. toliau pateiktą "Microsoft Edge" pastabą. Pasak "Microsoft", naudojant X-UA-Compatible žymą, ji turėtų būti kuo aukščiau dokumento galvoje: Jei naudojate X-UA-Compatible META žymą, norite ją patalpinti kuo arčiau puslapio antraštės (HEAD) viršaus. Internet Explorer pradeda interpretuoti žymas naudodamas naujausią versiją. Kai "Internet Explorer" susiduria su X-UA-Compatible META žyma, ji pradeda iš naujo naudoti paskirtos versijos variklį. Dėl to nukenčia našumas, nes naršyklė turi sustoti ir iš naujo pradėti analizuoti turinį. Štai jūsų galimybės:

  • IE=edge";
  • "IE=11"
  • "IE=EmulateIE11"
  • "IE=10"
  • "IE=EmulateIE10"
  • "IE=9"
  • "IE=EmulateIE9
  • "IE=8"
  • "IE=EmulateIE8"
  • "IE=7"
  • "IE=EmulateIE7"
  • "IE=5" Norėdami pabandyti suprasti, ką kiekvienas iš jų reiškia, pateikiame "Microsoft" pateiktus apibrėžimus: "Internet Explorer" palaiko keletą dokumentų suderinamumo režimų, kurie įgalina skirtingas funkcijas ir gali turėti įtakos turinio rodymui:
    • Edge režimas nurodo "Internet Explorer" rodyti turinį aukščiausiu galimu režimu. Naudojant "Internet Explorer 9", tai atitinka IE9 režimą. Jei būsima "Internet Explorer" versija palaikys aukštesnį suderinamumo režimą, puslapiai, nustatyti į kraštinį režimą, bus rodomi aukščiausiu tos versijos palaikomu režimu. Tie patys puslapiai vis tiek būtų rodomi IE9 režimu, kai juos peržiūrėsite naudodami "Internet Explorer 9". "Internet Explorer" palaiko keletą dokumentų suderinamumo režimų, kurie įgalina skirtingas funkcijas ir gali turėti įtakos turinio rodymo būdui:
    • IE11 režimas užtikrina aukščiausią galimą nustatytų ir naujų pramonės standartų, įskaitant HTML5, CSS3 ir kitus, palaikymą.
    • IE10 režimu užtikrinamas didžiausias galimas nustatytų ir naujų pramonės standartų, įskaitant HTML5, CSS3 ir kitus, palaikymas.
    • IE9 režimu užtikrinamas didžiausias galimas nustatytų ir naujų pramonės standartų, įskaitant HTML5 (darbinis projektas), W3C kaskadinių stilių lentelių 3 lygio specifikaciją (darbinis projektas), keičiamo dydžio vektorinės grafikos (SVG) 1.0 specifikaciją ir kitus, palaikymas. [Redaktoriaus pastaba: IE 9 nepalaiko CSS3 animacijos].
    • IE8 režimas palaiko daugelį nusistovėjusių standartų, įskaitant "W3C Cascading Style Sheets Level 2.1 Specification" ir "W3C Selectors API"; taip pat ribotai palaiko "W3C Cascading Style Sheets Level 3 Specification" (Working Draft) ir kitus naujus standartus.
    • IE7 režimu turinys atvaizduojamas taip, tarsi jis būtų rodomas "Internet Explorer 7" standartų režimu, nepriklausomai nuo to, ar puslapyje yra direktyva, ar ne.
    • "Emulate IE9" režimas nurodo "Internet Explorer" naudoti direktyvą, kad nustatytų, kaip atvaizduoti turinį. Standartų režimo direktyvos rodomos IE9 režimu, o keistenybių režimo direktyvos rodomos IE5 režimu. Skirtingai nei IE9 režimas, "Emulate IE9" režimas atsižvelgia į direktyvą.
    • Emuliuoti IE8 režimas nurodo "Internet Explorer" naudoti direktyvą, kad nustatytų, kaip atvaizduoti turinį. Standartų režimo direktyvos rodomos IE8 režimu, o keistenybių režimo direktyvos rodomos IE5 režimu. Skirtingai nei IE8 režimas, "Emulate IE8" režimas atsižvelgia į direktyvą.
    • Emuliuoti IE7 režimas nurodo "Internet Explorer" naudoti direktyvą, kad nustatytų, kaip atvaizduoti turinį. Standartų režimo direktyvos rodomos "Internet Explorer 7" standartų režimu, o keistenybių režimo direktyvos rodomos IE5 režimu. Skirtingai nei IE7 režimas, "Emulate IE7" režimas atsižvelgia į direktyvą. Daugelyje interneto svetainių tai yra pageidaujamas suderinamumo režimas.
    • IE5 režimu turinys atvaizduojamas taip, tarsi "Internet Explorer 7" būtų rodomas quirks režimu, kuris yra labai panašus į tai, kaip turinys buvo rodomas "Microsoft Internet Explorer 5". IE10 PASTABA: Nuo IE10 keistenybių režimas veikia kitaip nei ankstesnėse naršyklės versijose. IE9 ir ankstesnėse versijose quirks režimas apribojo tinklalapį iki IE5.5 palaikomų funkcijų. IE10 versijoje quirks režimas atitinka HTML5 specifikacijoje nurodytus skirtumus. Asmeniškai aš visada renkuosi http-equiv="X-UA-Compatible" content="IE=edge" metažymą, nes senesnėse versijose yra daug klaidų ir nenoriu, kad IE nuspręstų pereiti į "suderinamumo režimą" ir rodytų mano svetainę kaip IE7 prieš IE8 ar 9. Visada renkuosi naujausią IE versiją. IE11Microsoft: Nuo IE11 pageidaujamas dokumento režimas yra kraštinis režimas; jis atspindi didžiausią naršyklės turimą šiuolaikinių standartų palaikymą. Norėdami įjungti kraštinį režimą, naudokite HTML5 dokumento tipo deklaraciją: `` Edge režimas buvo įdiegtas "Internet Explorer 8" ir buvo galimas kiekvienoje vėlesnėje versijoje. Atkreipkite dėmesį, kad kraštinio režimo palaikomos funkcijos apsiriboja tomis, kurias palaiko konkreti turinį atvaizduojančios naršyklės versija.

      Nuo IE11 dokumento režimai yra nebenaudojami ir jų nebereikėtų naudoti, išskyrus laikinus atvejus. Būtinai atnaujinkite svetaines, kuriose naudojamos senosios funkcijos ir dokumentų režimai, kad jos atitiktų šiuolaikinius standartus. Jei turite pasirinkti tam tikrą dokumento režimą, kad svetainė veiktų, kol ją pertvarkysite taip, kad ji palaikytų šiuolaikinius standartus ir funkcijas, žinokite, kad naudojate pereinamojo laikotarpio funkciją, kurios gali nebelikti būsimose versijose. Jei šiuo metu naudojate x-ua suderinamą antraštę, kad nustatytumėte senąjį dokumento režimą, gali būti, kad jūsų svetainė neatspindės geriausios IE11 patirties. Microsoft Edge (su "Windows 10" pateikiamas "Internet Explorer" pakaitalas) Informacija apie X-UA-Compatible metažymą, skirtą "Edge" IE versijai. Iš "Microsoft": "Gyvojo" "Edge" dokumento režimo pristatymas Kaip paskelbėme 2013 m. rugpjūtį, nuo IE11 atsisakome dokumentų režimų. Su naujausiais mūsų platformos atnaujinimais senųjų dokumentų režimų poreikis visų pirma apsiriboja įmonių senosiomis žiniatinklio programomis. Atlikus naujus architektūros pakeitimus, šie paveldėti dokumentų režimai bus izoliuoti nuo "gyvojo" "Edge" režimo pakeitimų, o tai padės užtikrinti daug didesnį suderinamumą klientams, kurie yra priklausomi nuo šių režimų, ir padės mums dar sparčiau tobulinti "Edge". IE vis dar palaikys dokumentų režimus, kurie naudojami intraneto svetainėse, svetainėse, įtrauktose į suderinamumo rodinio sąrašą, ir kai jie naudojami tik su "Enterprise Mode" režimu. Viešosios interneto svetainės bus atvaizduojamos naudojant naująją "Edge" režimo platformą (ignoruojant X-UA-Compatible). Siekiame, kad nuo šiol Edge būtų "gyvasis" dokumento režimas ir kad ateityje daugiau dokumentų režimų nebūtų įvedama. Dėl "Microsoft Edge" pakeitimų, kai daugeliu atvejų nebepalaikomi dokumentų režimai, "Microsoft" turi įrankį, kuriuo galima nuskaityti jūsų svetainę ir patikrinti, ar joje nėra kodo, nesuderinamo su "Edge". Chrome=1 Informacija apie IE Taip pat yra chrome=1, kurią galite naudoti arba naudoti kartu su viena iš pirmiau nurodytų parinkčių, pvz: <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">. chrome=1 yra skirtas "Google" "Chrome" rėmeliui, kuris apibrėžiamas taip: "Google Chrome Frame" yra atvirojo kodo naršyklės papildinys. Įskiepį įsidiegę vartotojai, atidarinėdami puslapius naršyklėje, turi prieigą prie "Google Chrome's atvirojo žiniatinklio technologijų ir sparčiojo "JavaScript" variklio. "Google Chrome Frame" sklandžiai pagerina naršymo "Internet Explorer" naršyklėje patirtį. Jis rodo "Google Chrome Frame" įgalintas svetaines naudodamas "Google Chrome" atvaizdavimo technologiją, suteikdamas prieigą prie naujausių HTML5 funkcijų, taip pat prie "Google Chrome" našumo ir saugumo funkcijų, niekaip netrukdydamas įprastam naršyklės naudojimui. Įdiegus "Google Chrome Frame", žiniatinklis tampa geresnis, o jums nereikia apie tai galvoti. Tačiau kad šis papildinys veiktų, X-UA-Compatible metažymėje turite naudoti chrome=1. Daugiau informacijos apie "Chrome Frame" rasite čia. Pastaba: "Google Chrome Frame" veikia tik IE6 - IE9 ir buvo pašalintas 2014 m. vasario 25 d. Daugiau informacijos rasite čia. Ačiū @mck už nuorodą. Patvirtinimas: HTML5: Puslapis bus patvirtintas naudojant W3 Validator tik tada, kai bus naudojama <meta http-equiv="X-UA-Compatible" content="IE=Edge">. Kitų reikšmių atveju bus išmetama klaida: Meta elementas su atributu http-equiv, kurio reikšmė yra X-UA-Compatible, turi turėti atributą content, kurio reikšmė yra IE=edge. Kitaip tariant, jei nurodysite IE=edge,chrome=1, jis nebus patvirtintas. Visiškai ignoruoju šią klaidą, nes šiuolaikinės naršyklės tiesiog ignoruoja šią kodo eilutę. Jei turite turėti visiškai galiojantį kodą, apsvarstykite galimybę tai padaryti serverio lygmeniu nustatydami HTTP antraštę. "Microsoft" teigia: "Jei siunčiami abu šie nurodymai (meta ir HTTP), kūrėjo pageidavimas (meta elementas) turi pirmenybę prieš žiniatinklio serverio nustatymą (HTTP antraštė)." Daugiau informacijos apie tai, kaip nustatyti HTTP antraštę, rasite olibre's atsakymas arba bitinn's atsakymas. XHTML Naudojant <meta http-equiv="X-UA-Compatible" content="IE=Edge" />, jei žyma yra tinkamai uždaryta (t. y. /> vs >), su patvirtinimu problemų nekyla. Twitter Bootstrap Šią žymą "Bootstrap" komanda primygtinai rekomenduoja bent jau nuo 2014 m., o Bootlint, linteris, kurio autoriai yra twbs komanda, ir toliau meta įspėjimą, kai žyma praleidžiama. Linteris skiria įspėjimus ir klaidas, todėl šios žymės praleidimo rimtumas gali būti laikomas nedideliu.

      Daugiau informacijos apie X-UA-Compatible rasite "Microsoft" Svetainėje, apibrėžiančioje dokumentų suderinamumą. Daugiau informacijos apie tai, ką palaiko IE, rasite caniuse.com. Daugiau informacijos apie "Twitter Bootstrap" reikalavimus žr. projekto bootlint wiki puslapis.

Komentarai (31)