0

不幸的是,我的 HTML5 网站出现了问题,我的 Internet Explorer 浏览器(我使用的是 11 版)决定以 IE7 兼容模式加载网站是正确的做法。

插入生气的脸

将此添加<meta http-equiv="X-UA-Compatible" content="IE=edge" />到网站确实可以使其在 IE 中正常工作,但是如果您将网站通过 W3C 验证器,它会向您抛出此错误:

第 6 行,第 59 列:元素元上属性 http-equiv 的错误值 X-UA-Compatible。

我想知道是否有人知道是否有一种两全其美的方法?

4

2 回答 2

0

贡献可能有点晚,但也许有人可以使用它。基于<meta http-equiv="..." content="...">用于模拟 HTTP 响应标头的事实(请参阅此处),如果您可以访问 PHP 之类的脚本语言,则可以尝试以下操作:

<?php

header('X-UA-Compatible: IE=edge');

?><!DOCTYPE html>
<html lang="en">

...

这样,服务器仍然会发送标头,但它不在 HTML5 代码本身中。我在我的网站上使用了它,它在 W3C 验证器上正确验证。我不确定它是否具有 IE 渲染的预期结果。也许有人可以提供反馈。我的实验并没有太大的结论。当我在http://netrenderer.com/中测试页面时,我确实发现了使用 PHP 标头函数和使用元标记之间的一些细微差别。

于 2014-07-02T13:42:23.540 回答
0

当我在本地网站上时,我不得不在 Compatibility View 中取消勾选 Display Intranet sites

Alt+ T> 兼容性视图设置

我发现对我发布的项目有帮助的另一个选项是在 Web 配置文件中添加一些代码:

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="X-UA-Compatible" value="IE=Edge" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

这显然是 Windows 上的 IIS,但您显然可以在 Apache 上实现这一点

于 2015-03-24T11:04:09.757 回答