Answers:
X-UA-Compatible不是“标准” HTML(涉及出现在规范所引用的可公开编辑的Wiki页面上的“ FSVO”“标准” ),或者验证器不是该Wiki的最新状态。
在撰写本文时(20130326)X-UA兼容出现在Wiki页面上的以下部分:“以下建议的扩展名尚未符合HTML规范中的所有注册要求,因此尚未被允许使用有效的扩展名。文件。” 因此,验证器拒绝该值是正确的。
X-UA-Compatible
,因此适用“验证器不是最新的”选择。在这方面,甚至是validateator.nu(据说通常更新)。
X-UA-Compatible
。stackoverflow.com/a/21048010/1006963
如果您希望使其在技术上有效(每个人都喜欢看到绿色的图标),并且不影响任何功能,则应该可以将其包装在“ if IE”标签中。
<!--[if IE]><meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'><![endif]-->
一种可能的解决方案是在标头中实现修复服务器端,如Aaron Layton 在这篇不错的文章中所建议的那样。(所有功劳都应该归功于他,我将释述而不是窃...)
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
“当Internet Explorer碰到这一行时,它将首先使用的引擎更改为Chrome Frame(如果已安装插件),然后更改为Edge(浏览器支持的最高文档模式)。”
步骤:
要在PHP中添加标头,我们可以将其添加到页面中:
if (isset($_SERVER['HTTP_USER_AGENT']) &&
(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
header('X-UA-Compatible: IE=edge,chrome=1');
或者您可以将其添加到您的.htaccess文件中,如下所示:
<FilesMatch "\.(htm|html|php)$">
<IfModule mod_headers.c>
BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
</IfModule>
</FilesMatch>
链接到原始文章,查看可能的警告注释。还包括C#的实现。
希望这可以帮助!
<meta>
从html文件中删除。
response.addHeader("X-UA-Compatible", "IE=edge,chrome=1");
,但是这里有完整的github gist。
headers
和setenvif
mods才能使其正常工作。
..这可能是个好答案吗?
使用PHP设置HTTP标头:
这不是我自己的工作,但我希望它对其他人也有用。
如果下载/构建验证器src代码,则可以自己添加支持。
将以下内容添加到一个文件中,例如html5-meta-X-UA-Compatible.rnc
),然后将其包含在中html5full.rnc
。
我做到了,它很好地用于验证。
meta.http-equiv.X-UA-Compatible.elem =
element meta { meta.inner & meta.http-equiv.X-UA-Compatible.attrs }
meta.http-equiv.X-UA-Compatible.attrs =
( common.attrs.basic
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
& meta.http-equiv.attrs.http-equiv.X-UA-Compatible
& meta.http-equiv.attrs.content.X-UA-Compatible
& ( common.attrs.aria.role.presentation
| common.attrs.aria.role.menuitem
)?
)
meta.http-equiv.attrs.http-equiv.X-UA-Compatible = attribute http-equiv {
xsd:string {
pattern = "X-UA-Compatible"
}
}
meta.http-equiv.attrs.content.X-UA-Compatible = attribute content {
xsd:string {
pattern = "IE=((edge)|(EmulateIE(7|8|9|10))|7|8|9|10|11)(,chrome=(1|0))?"
}
}
common.elem.metadata |= meta.http-equiv.X-UA-Compatible.elem
我遇到了同样的问题,并且在整个生产线中添加并围绕该问题进行了补救。
<!--[if IE]><meta http-equiv="x-ua-compatible" content="IE=9" /><![endif]-->