Internet Explorer 11 是否仍有可用的怪癖模式?我们使用一个非常古老的系统,它依赖于 quirks 模式。
我知道这是一个非常古老且脆弱的环境,但我只是想知道它是否会继续工作。
Internet Explorer 11 是否仍有可用的怪癖模式?我们使用一个非常古老的系统,它依赖于 quirks 模式。
我知道这是一个非常古老且脆弱的环境,但我只是想知道它是否会继续工作。
是的,它确实。
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 模式。
我很抱歉之前没有看到你的问题,但当然有。您需要通过 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)
只是它!再见.. 并为您的发展带来最好的结果!!!