Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html IE兼容模式问题_Html_Internet Explorer_Ie Compatibility Mode - Fatal编程技术网

Html IE兼容模式问题

Html IE兼容模式问题,html,internet-explorer,ie-compatibility-mode,Html,Internet Explorer,Ie Compatibility Mode,我想知道当我将浏览器置于兼容模式时,它如何从文档中找到的标题标记中知道要使用什么设置。如果我们有返回到EI7的所有版本的逻辑,它会使用最后面的版本吗?所以在这种情况下,它在comp模式下选择7,但如果我们只提供给IE8,那么它会为该实例选择IE8吗?所以问题是,为什么IE 11兼容模式根据我在IE中的调试器将其设置为IE7标准?如果我删除[If IE7]代码段,它会在浏览器中将其设置为IE8标准吗?我们刚刚停止支持IE7,所以我问这个问题 [if IE 7 ]> <html c

我想知道当我将浏览器置于兼容模式时,它如何从文档中找到的标题标记中知道要使用什么设置。如果我们有返回到EI7的所有版本的逻辑,它会使用最后面的版本吗?所以在这种情况下,它在comp模式下选择7,但如果我们只提供给IE8,那么它会为该实例选择IE8吗?所以问题是,为什么IE 11兼容模式根据我在IE中的调试器将其设置为IE7标准?如果我删除[If IE7]代码段,它会在浏览器中将其设置为IE8标准吗?我们刚刚停止支持IE7,所以我问这个问题

[if IE 7 ]>    <html class="ie7"
[if IE 8 ]>    <html class="ie8" 
[if IE 9 ]>    <html class="ie9"

[如果IE 7]>您在问题中引用的代码不会告诉IE使用哪种模式。这段代码的作用是查看IE已经处于的模式,并做出相应的反应

因此,您的问题的答案是:否:从该代码中删除IE7特定块不会阻止IE进入IE7模式

如果要强制IE进入特定模式,则需要使用
X-UA-Compatible
meta标记

在HTML顶部附近需要一行如下所示:

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


edge
放在内容中告诉IE使用它的最佳可用模式(因此IE11将处于IE11模式)。如果您想要特定的IE模式,请将
IE8
或类似的模式替换为
edge

此外,查看页面的方式也会影响文档模式

  • 如果在Internet上(或通过本地web浏览器)查看页面,则该页面将在Internet区域中打开。在这种情况下,
    x-ua-compatible
    指令优先;根据设置的不同,
    可能会出现故障
  • 如果使用“文件”菜单、文件资源管理器或网络路径打开该页面,则该页面将在Intranet区域中打开。默认情况下,这意味着您的页面将在IE7兼容模式下打开,尽管这可能是错误的
  • 承载webBrowser控件的应用默认为IE7,除非您使用。(注意,目前尚不清楚Windows 10是否支持此功能)
为了获得最佳效果:

  • 使用HTML5指令
  • 使用
    x-ua-compatible
    meta,内容设置为
    IE=edge
  • 通过本地webbrowser查看本地页面
  • HTML5的代码,检测功能,提供优雅的回退,并且不必担心不同浏览器之间的差异
  • 希望这有助于


    --Lance

    您是否尝试在浏览器中测试它?似乎你可以很容易地回答自己的问题。尝试,但这就是问题所在。当我在IE comp模式下在调试器的控制台中打开时,它说明了附加页面的目标是文档模式IE7。取出后,说明它是无效的文档类型。那么IE comp模式是否总是尝试将其置于IE7模式?您引用的用于设置模式的代码不完整;问题是我刚开始在一家新公司工作,他们刚刚停止支持IE8。尽管如此,他们告诉他们的所有代理在web应用程序中始终使用IE comp模式,但碰巧的是,这使他们进入了IE7标准模式。对我来说没有意义。如果你说的“兼容性模式”是指“兼容性视图”,那么这就是记录在案的行为。兼容性视图是定义文档兼容性的EmulateIE7模式,这意味着如果给定标准模式doctype(如HTML5 doctype)或浏览器进入IE5怪癖模式,浏览器将进入IE7标准。这是一种下意识的反应,导致很少有好的解决方案。那么为什么我们仍然在开发可比性视图,但不支持IE7呢?这难道不能给出一个准确的结果吗?谢谢,这就是我想知道的。所以,如果我们停止支持IE7,我们应该将它应用到所有的页面标题上,因为我们告诉最终用户要一直使用兼容模式,这会使它进入IE7模式,不是吗?