12

Internet Explorer 11 是否仍有可用的怪癖模式?我们使用一个非常古老的系统,它依赖于 quirks 模式。

我知道这是一个非常古老且脆弱的环境,但我只是想知道它是否会继续工作。

4

2 回答 2

15

是的,它确实。

IE11 具有与 IE10 相同的向后兼容模式(当然还有 IE10 兼容模式)。

事实上,和IE10一样,其实有两种非常细微的不同的quirks模式。(“怪癖模式”和“IE5 怪癖模式”)。但是对于大多数目的,您实际上并不需要知道这一点。在没有 doctype 的情况下,它将默认为原始 Quirks 模式,与以前的 IE 版本相同。

所以对你的问题的简短回答是“是的,你很好;它仍然存在,你的页面在 IE11 中仍然可以像在 IE10 中一样正常工作。”

然而,IE 的工程师正试图阻止使用这些模式。

他们这样做的主要方法是将它们隐藏在开发工具面板中——浏览器模式选项是可见的,但你最多只有两个选项:页面加载的模式和“边缘” mode 为 IE11 标准模式。如果页面是在标准模式下加载的,那么您只会看到“Edge”选项。

这意味着是的,如果以这种方式编写,您可以在 quirks 模式下加载页面,但如果您在标准模式下加载页面,您将无法看到将该页面放回 quirks 模式的选项。

需要注意的一件事是,如果您使用某些其他旧功能,例如嵌入在页面中的 ActiveX 控件,您可能会遇到浏览器安全模型的问题。这在 IE10 和 IE11 之间并没有太大变化,所以如果您的页面在 IE10 中工作,那么您应该没问题,但是如果您从 IE9 升级到 IE11,您可能会发现有些问题。有一些方法可以重新启用它,但它可能有点难看。

我还要指出,从纯 CSS 的角度来看,从 quirks 模式转换为标准模式实际上非常容易。大多数由切换引起的布局故障是由于盒子模型的变化造成的,但标准模式可以设置为使用相同的怪癖模式盒子模型,只需添加*{box-sizing:border-box;}到您的 CSS 中即可。

如果布局是主要问题,您应该考虑尝试一下,因为您可能会发现您实际上并不需要 quirks 模式。

于 2013-09-03T12:27:45.167 回答
4

我很抱歉之前没有看到你的问题,但当然有。您需要通过 X-UA-Compatible HTTP 等效标头在 HTML 代码中更改它。

因此,例如,如果您想模拟 Internet Explorer 8.0,请在 head 部分插入:

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

甚至 JavaScript navigator.userAgent 也会发生变化,不会破坏依赖于浏览器版本的脚本。

navigator.userAgent
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C)

只是它!再见.. 并为您的发展带来最好的结果!!!

于 2013-11-21T23:12:39.120 回答