【发布时间】:2023-04-07 01:01:01
【问题描述】:
Internet Explorer 11 是否仍有可用的怪癖模式?我们使用一个非常古老的系统,它依赖于 quirks 模式。
我知道这是一个非常古老且脆弱的环境,但我只是想知道它是否会继续工作。
【问题讨论】:
标签: internet-explorer quirks-mode internet-explorer-11
Internet Explorer 11 是否仍有可用的怪癖模式?我们使用一个非常古老的系统,它依赖于 quirks 模式。
我知道这是一个非常古老且脆弱的环境,但我只是想知道它是否会继续工作。
【问题讨论】:
标签: internet-explorer quirks-mode internet-explorer-11
是的。
IE11 具有与 IE10 相同的向后兼容模式(当然还有 IE10 兼容模式)。
其实和IE10一样,其实有两种的quirks模式,它们的差别非常小。 (“怪癖模式”和“IE5 怪癖模式”)。但是对于大多数目的,您实际上并不需要知道这一点。在没有 doctype 的情况下,它将默认为原始 Quirks 模式,与之前的 IE 版本相同。
因此,对您的问题的简短回答是“是的,您很好;它仍然存在,您的页面在 IE11 中仍然可以像在 IE10 中一样正常工作。”
但是,IE 的工程师正试图阻止使用这些模式。
他们做到这一点的主要方法是将它们隐藏在开发工具面板中——浏览器模式选项是可见的,但您最多只有两个选项:页面加载的模式,以及IE11 标准模式的“边缘”模式。如果页面是在标准模式下加载的,那么您只会看到“Edge”选项。
这意味着是的,您可以在 quirks 模式下加载页面,如果它是这样编写的,但是如果您在标准模式下加载页面,您将无法看到将该页面放回的选项怪癖模式。
需要注意的一点是,如果您使用某些其他旧功能(例如嵌入在页面中的 ActiveX 控件),您可能会遇到浏览器安全模型的问题。这在 IE10 和 IE11 之间并没有太大变化,所以如果您的页面在 IE10 中工作,那么您应该没问题,但是如果您从 IE9 升级到 IE11,您可能会发现一些问题。有一些方法可以重新启用它,但它可能有点难看。
我还要指出,从纯 CSS 的角度来看,从 quirks 模式转换为标准模式实际上非常容易。大多数由切换引起的布局故障是由于盒子模型的变化造成的,但只需在 CSS 中添加 *{box-sizing:border-box;} 即可将标准模式设置为使用相同的怪癖模式盒子模型。
如果布局是主要问题,您应该考虑尝试一下,因为您可能会发现您实际上并不需要 quirks 模式。
【讨论】:
我很抱歉之前没有看到您的问题,但当然有。您需要通过 X-UA-Compatible HTTP 等效标头在 HTML 代码中更改它。
因此,例如,如果您想模拟 Internet Explorer 8.0,请在头部插入:
<!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)
就是这样!再见.. 祝您的发展取得最好的成果!!!
【讨论】: