返回顶部
首页 > 资讯 > 前端开发 > JavaScript >怎么解析IE8文件兼容性问题
  • 348
分享到

怎么解析IE8文件兼容性问题

2024-04-02 19:04:59 348人浏览 独家记忆
摘要

怎么解析IE8文件兼容性问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。IE8的样式兼容性适应方法IE8文件兼容性用于定义让IE如何编译

怎么解析IE8文件兼容性问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

IE8的样式兼容性适应方法

IE8文件兼容性用于定义让IE如何编译你的网页。此文件解释IE8文件兼容性,如何指定你网站的IE8文件兼容性模式以及如何判断一个网页该使用的文件模式。

前言

为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入了IE8文件兼容性。在IE6中引入一个增设的兼容性模式,IE8文件兼容性使你能够在IE呈现你的网页时选择特定编译模式。

新的IE为了确保网页在未来的版本中都有一支的外观,IE8引入了IE8文件兼容性。当你引入一个增设的兼容性模式,此文章说明IE8文件兼容性的必要性,列出现有版本IE能使用的IE8文件兼容性模式并示范如何选择特定的兼容性模式。

了解IE8文件兼容性的必要性

每个主要版本IE新增的功能都是为了让浏览器更容易使用、增加安全性及更支持业界标准。以这些作为IE的特色,其中一个风险就是旧版本网站无法正确的显示。

为了将这个风险降到***,IE6允许网页开发人员选择IE编译和显示他们网页的方式。"Quirksmode"为预设,这会使页面以旧版本浏览器的视点显示,"Standardsmode"(也称为"strictmode")特点是支持业界标准最为完善。然而要利用这个增强的支持功能,网页必须包含恰当的<!DOCTYPE>指令。

◆若一个网页没有包含<!DOCTYPE>指令,IE6会将它以quirksmode显示。若网页包含有效的<!DOCTYPE>指令但浏览器无法辨识,IE6会将它以IE6standardsmode显示。因为少数网站已经包含<!DOCTYPE>指令,兼容性模式的切换相当成功。这使网页开发人员能选择将他们的网页转移为standardsmode的***时机。

随著时间经过,更多网站开始使用standardsmode。它们也开始使用IE6的特性和功能来检测IE。举例来说,IE6不支持universalselector(即CSS之全局选择器*{}),一些网站便使用它来针对IE做特定的对应。

当IE7增加了对全域选择器的支持,那些依赖IE6特点的网站便无法侦测出这个新版本的浏览器。因此那些针对IE的特定对应无法应用于IE7,造成这些网站便无法如他们预期的显示。由于<!DOCTYPE>只支持两种兼容性模式,受到影响的网站拥有者被迫更新他们的网站使其能支持IE7。

◆IE8比之前的任何版本浏览器都更支持业界标准,因此针对旧版本浏览器设计的网页可能无法如预期般呈现。为了帮助减轻所有问题,IE8引入IE8文件兼容性的概念,使你能选择你的网页设计要对应的特定IE版本。IE8文件兼容性在IE8增加了一些新的模式,这些模式能告诉浏览器如何解析和编译一个网页。若你的网页无法在ie8正确的显示,你可以更新你的网站使它支持***的网页标准(优先选项)或在你的页面上新增一个meta元素用于告诉IE8如何依照旧版本浏览器编译你的页面。

这能让你选择将你的网站更新支持IE8新特点的时机。

认识IE8文件兼容性模式

IE8支持几种IE8文件兼容性模式,它们具有不同的特性并影响内容显示的方式。

-EmulateIE8mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standardsmode指令会显示成IE8Standardsmode而quirksmode会显示成IE5mode。不同于IE8mode,EmulateIE8mode重视<!DOCTYPE>指令。
-EmulateIE7mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standardsmode指令会显示成IE7Standardsmode而quirksmode会显示成IE5mode。不同于IE7mode,EmulateIE7mode重视<!DOCTYPE>指令。对于许多网页来说这是最推荐的兼容性模式。
-IE5mode编译内容如同IE7的quirksmode之显示状况,和IE5中显示的非常类似。
-IE7mode编译内容如同IE7的standardsmode之显示状况,无论网页是否含有<!DOCTYPE>指令。
-IE8mode提供对业界标准的***支持,包含W3CCascadingStyleSheetsLevel2.1Specification和W3CSelectorsapi,并有限的支持W3CCascadingStyleSheetsLevel3Specification(WorkingDraft)。
-Edgemode指示IE以目前可用的***模式显示内容。当使用IE8时其等同于IE8mode。若(假定)未来放出支持更高兼容性模式的IE,使用Edgemode的页面会使用该版本能支持的***模式来显示内容。同样的那些页面在使用IE8浏览时仍会照常显示。

由于edgemode使用该IE版本所能支持的***模式来显示所浏览的网页内容,建议仅使用于测试页及其他非商用页面。

指定IE8文件兼容性模式

要为你的网页指定文件模式,需要在你的网页中使用meta元素放入X-UA-CompatibleHttp-equiv标头。以下是指定为EmulateIE7mode兼容性之范例。

<html> <head> <!--MimicInternetExplorer7--> <metahttp-equivmetahttp-equiv="X-UA-Compatible"content="IE=EmulateIE7"/> <title>MyWEBPage</title> </head> <body> <p>ContentGoeshere.</p> </body> </html>

其内容随著指定的页面模式而更改,当要模拟IE7时,指定IE=EmulateIE7,指定IE=5,IE=7,或IE=8来选择其中一种兼容性模式。你也可以指定IE=edge来指示IE8使用它支持的***模式。

X-UA-compatible标头没有大小写之分。然而除了title元素及其他的meta元素之外,它必须出现在网页header节其它元素之前的位置,

设定网站服务器以指定预设兼容性模式

网站管理员可籍着为网站定义一个自订标头来为他们的网站预设一个特定的IE8文件兼容性模式。这个特定的方法取决于你的网站服务器。举例来说,下列的web.config文件使MicrosoftInternetInfORMationServices(IIS)能定义一个自订标头以自动使用IE7mode来编译所有网页。

<?xmlversionxmlversion="1.0"encoding="utf-8"?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <clear/> <addnameaddname="X-UA-Compatible"value="IE=EmulateIE7"/> </customHeaders> </httpProtocol> </system.webServer> </configuration>

若你已于网站服务器指定了一个预设的IE8文件兼容性模式,你可以在个别页面上指定不同的IE8文件兼容性模式来盖过它。在网页中指定的模式优先权高于服务器中所指定的模式。

请查阅你的网站服务器关于指定自订标头的资讯,或看更多资料:

ImplementingtheMETASwitchonApache
ImplementingtheMETASwitchonIIS

判定IE8文件兼容性模式

要判定网页使用IE8浏览时的IE8文件兼容性模式,使用documentobject(文档对象)的documentMode功能。例如在IE8的网址列输入下列程式码会显示目前页面的文件模式。

javascript:alert(document.documentMode);
documentMode功能会回传一个数值对应目前页面的IE8文件兼容性模式,举例来说,若网页指定为支持IE8模式,documentMode便会回传值"8"。

在IE6引入的compatMode功能不支持在IE8引入的documentMode功能。目前使用compatMode建立的应用程式还能在IE8中作用,但它们必须更新为使用documentMode。

若你希望使用JavaScript判定一个文件的兼容性模式,引入下面范例的这段程式码可支持旧版本的IE。

engine=null;  if(window.navigator.appName=="MicrosoftInternetExplorer")  {  //ThisisanIEbrowser.Whatmodeistheenginein?  if(document.documentMode)//IE8  engine=document.documentMode;  else//IE5-7  {  engine=5;//Assumequirksmodeunlessprovenotherwise  if(document.compatMode)  {  if(document.compatMode=="CSS1Compat")  engine=7;//standardsmode  }  }  //theenginevariablenowcontainsthedocumentcompatibilitymode.  }

认识内容属性值

内容属性值在接收到异于先前叙述的数值时是具有弹性的。这能使你对于IE如何显示你的网页更有操控性。举例来说,你可以设定内容属性值为IE=7.5。当你这样做的时候,IE尝试将这个值转换为versionvector并选择最接近的结果。在这个例子中,IE会将其设定为IE7mode。下面的范例显示该模式设定为其他值的状况。

<metahttp-equivmetahttp-equiv="X-UA-Compatible"content="IE=4"><!--IE5mode--> <metahttp-equivmetahttp-equiv="X-UA-Compatible"content="IE=7.5"><!--IE7mode--> <metahttp-equivmetahttp-equiv="X-UA-Compatible"content="IE=100"><!--IE8mode--> <metahttp-equivmetahttp-equiv="X-UA-Compatible"content="IE=a"><!--IE5mode-->  <!--ThisheadermimicsInternetExplorer7anduses  <!DOCTYPE>todeterminehowtodisplaytheWebpage--> <metahttp-equivmetahttp-equiv="X-UA-Compatible"content="IE=EmulateIE7">

注意:前面的范例显示单独的内容值。实际上IE只会执行网页中***个X-UA-Compatible标头。

你也可以使用内容属性来指定复数的IE8文件兼容性模式,这能帮助确保你的网页在未来的浏览器版本都能一致的显示。欲设定复数的文件模式,请设定内容属性以判别你想使用的模式。使用分号来分开各个模式。

如果一个特定版本的IE支持所要求的兼容性模式多于一种,将採用列于标头内容属性中***的可用模式。你可以使用这个特性来排除特定的兼容性模式,虽然并不推荐这样做。举例来说,下列标头即会排除IE7mode。

<metahttp-equivmetahttp-equiv="X-UA-Compatible"content="IE=5;IE=8"/>

结论

兼容性对于网页设计师来说是非常重要的顾虑。虽然是可以建立一个完全不需依赖任何网页浏览器特性或功能的网站,有时候这是不可能实现的。IE8文件兼容性模式便能将网页限制在某个特定版本的IE中。

使用X-UA-Compatible标头来指定你的页面支持的IE版本。使用document.documentMode判定页面的兼容性模式。选择支持某个特定版本的IE,你可以确保你的页面在未来的浏览器版本中也能有显示的一致性。

关于怎么解析IE8文件兼容性问题问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网JavaScript频道了解更多相关知识。

--结束END--

本文标题: 怎么解析IE8文件兼容性问题

本文链接: https://lsjlt.com/news/86684.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么解析IE8文件兼容性问题
    怎么解析IE8文件兼容性问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。IE8的样式兼容性适应方法IE8文件兼容性用于定义让IE如何编译...
    99+
    2024-04-02
  • 如何解析IE8文件兼容性问题
    这篇文章将为大家详细讲解有关如何解析IE8文件兼容性问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。向大家描述一下IE8样式兼容性适应方法,为了帮助确保你...
    99+
    2024-04-02
  • 怎么解决IE7和IE8兼容性问题
    怎么解决IE7和IE8兼容性问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。IE8会是福音还是又一个光环据称全面兼容标准,今天向大家介绍如何...
    99+
    2024-04-02
  • JavaScript如何解决IE6与IE8兼容性问题
    JavaScript如何解决IE6与IE8兼容性问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获...
    99+
    2024-04-02
  • IE6、IE7、IE8、Firefox兼容性CSS HACK问题实例分析
    这篇“IE6、IE7、IE8、Firefox兼容性CSS HACK问题实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能...
    99+
    2024-04-02
  • IE8兼容性问题的快速解决方法是什么
    IE8兼容性问题的快速解决方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为了实现IE8兼容基于其它网页标准开发的网站,IE8还专门提...
    99+
    2024-04-02
  • 用JavaScript解决IE6至IE8兼容问题
    本篇内容主要讲解“用JavaScript解决IE6至IE8兼容问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用JavaScript解决IE6至IE8兼容问题...
    99+
    2024-04-02
  • CSS如何解决与IE7和IE8的兼容性问题
    这篇文章主要讲解了“CSS如何解决与IE7和IE8的兼容性问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS如何解决与IE7和IE8的兼容性问题”吧!...
    99+
    2024-04-02
  • 怎样解决IE6、IE7和IE8的CSS兼容问题
    本篇文章为大家展示了怎样解决IE6、IE7和IE8的CSS兼容问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。和大家重点讨论一下CSS兼容:解决IE6、IE7和I...
    99+
    2024-04-02
  • 怎样解决IE6、IE7、IE8样式不兼容问题
    怎样解决IE6、IE7、IE8样式不兼容问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。这里和大家探讨一下解决IE6、IE7、IE8 DIV...
    99+
    2024-04-02
  • IE6、IE7、IE8、Firefox兼容性CSS HACK问题有哪些
    这篇文章给大家分享的是有关IE6、IE7、IE8、Firefox兼容性CSS HACK问题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.区别IE和非IE浏览器CSS H...
    99+
    2024-04-02
  • 怎么解析IE6,IE7浏览器兼容性问题
    这篇文章将为大家详细讲解有关怎么解析IE6,IE7浏览器兼容性问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。向大家描述一下IE6,IE7浏览器兼容性问题...
    99+
    2024-04-02
  • IE8兼容性视图如何解决网站不兼容页面显示错乱问题
    IE8兼容性视图如何解决网站不兼容页面显示错乱问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。你对IE8兼容性视图解决网站不兼容页面显示错乱...
    99+
    2024-04-02
  • 如何解决IE8下不兼容rgba()的问题
    这篇文章主要介绍如何解决IE8下不兼容rgba()的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!rgba()是css3的新属性,所以IE8及以下浏览器不兼容,这怎么办呢?终于我...
    99+
    2024-04-02
  • XHTML+CSS兼容性问题怎么解决
    本篇内容主要讲解“XHTML+CSS兼容性问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“XHTML+CSS兼容性问题怎么解决”吧!解决XHTML+C...
    99+
    2024-04-02
  • prototype.js的Ajax对IE8兼容问题的解决方案
    prototype.js的Ajax对IE8兼容问题的解决方案,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。你是否遇到过这样的问题?在使用p...
    99+
    2024-04-02
  • 快速解决IE8兼容性问题的两大办法分别是什么
    快速解决IE8兼容性问题的两大办法分别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。你对IE8兼容性问题的解决方法是否了解,这里和大家简...
    99+
    2024-04-02
  • IE8下CSS3选择器与nth-child()不兼容问题怎么解决
    本篇内容主要讲解“IE8下CSS3选择器与nth-child()不兼容问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“IE8下CSS3选择器与nth-...
    99+
    2024-04-02
  • IE6中怎么解决CSS兼容性问题
    本篇内容主要讲解“IE6中怎么解决CSS兼容性问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“IE6中怎么解决CSS兼容性问题”吧!  IE6中常见CSS兼容...
    99+
    2024-04-02
  • CSS常见兼容性问题怎么解决
    这篇文章主要介绍“CSS常见兼容性问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS常见兼容性问题怎么解决”文章能帮助大家解决问题。   浏览器的兼...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作