对于我们的网络应用程序,我们发送X-UA兼容 - >所有页面的IE = EmulateIE7。但是,仍会显示“刷新”按钮旁边的“兼容性视图”按钮。
1)这是预期的行为吗? 2)HTTP标头是否不应强制浏览器以IE7模式显示(启用Quirks + IE7Standards),然后现在显示兼容性视图按钮?
如果某个网站没有准备好IE8,是否有办法强制IE7仿真,从而禁用此按钮?
答案 0 :(得分:14)
根据Just The Facts: Recap of Compatibility View,您已通过使用版本标记 宣布[您的网站]为Internet Explorer 8“准备好”。不应显示“兼容性视图”按钮:
网站所有者始终 控制其内容。默认情况下,Internet Explorer使用DOCTYPE切换来确定Quirks v。标准模式(同样,标准模式映射到IE8默认标准)。网站所有者可以选择使用X-UA-Compatible标签来绝对声明他们希望他们的网站如何显示以及将标准模式页面映射到IE7标准。使用X-UA-Compatible标记会覆盖客户端上的兼容性视图。
有时不显示兼容性视图按钮。该按钮位于“停止”和“刷新”按钮旁边的地址栏上。在某些情况下,用户无需采取任何操作,因此,不会显示兼容性视图按钮:
- 如果您正在查看内部到Internet Explorer页面(例如about:InPrivate)
- 如果您正在查看通过使用版本控制标记/ HTTP标头声明已为Internet Explorer 8“准备好”的页面(如果此标记触发Quirks,IE7标准或IE8标准,则无关紧要按钮不会显示)
- 如果您正在查看内部网页,并且选中了“在兼容性视图中显示Intranet网站”复选框
- 如果您正在查看任何网页,并且选中了“在兼容性视图中显示所有网站”复选框
- 如果您正在查看Microsoft提供的兼容性视图更新列表中包含的网页,并且您已选中“包括Microsoft的更新网站列表”复选框
- 如果您通过开发者工具栏切换了“文档模式”或“浏览器模式”设置
如果您正在使用HTTP标头,是否已使用Fiddler验证每个页面上是否实际传递了X-UA-Compatible
标头?
如果您使用META
标记,则根据META Tags and Locking in Future Compatibility:
X-UA兼容标头不区分大小写;但是,除了TITLE元素和其他META元素之外,它必须出现在所有其他元素之前的Web页面标题(HEAD部分)中。
最后,当按钮出现时IE8实际上是 in 兼容性视图吗?如果是这样,您的网站可能是Microsoft的IE8兼容性列表,或者是本地客户端配置:
Tools
> Compatibility View Settings
答案 1 :(得分:0)
我的工作服网站上有一个问题,我们最初不得不使用Meta EmulateIE7来克服IE8首次发布时的CSS问题。我们后来纠正了这个问题并添加了元标记X-UA-Compatible IE = 8
我们注意到,即使清除浏览器缓存,IE8仍然保留了用户设置的兼容性按钮的状态。我们必须克服这一点,因为它在兼容模式下运行时会导致脚本问题。
我们通过在所有页面的头部使用X-UA-Compatible IE = 8并将其作为HTTP标头添加到IIS来解决了这个问题。兼容性按钮不再显示在访问者浏览器上=)
希望这有帮助!