为啥 Chrome 会忽略 IE 条件标签?

Posted

技术标签:

【中文标题】为啥 Chrome 会忽略 IE 条件标签?【英文标题】:Why is Chrome ignoring IE conditional tag?为什么 Chrome 会忽略 IE 条件标签? 【发布时间】:2014-05-16 02:39:41 【问题描述】:

我正在使用自定义引导 wordpress 主题。

我的头是根据 Bootstrap 建议创建的

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php wp_title( '|', true, 'right' ); ?></title>
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
<?php // Loads html5 javascript file to add support for HTML5 elements in older IE versions. ?>
<!--[if lt IE 9]>
<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<?php wp_head(); ?>
</head>

我可能误解了 IE 条件标记的意义​​,但我希望 IE hack 代码只能在 IE 中加载,但是所有这些脚本都存在于 Chrome 中。

我是否滥用了这个标签?是否有另一种推荐的方法来确保这些脚本只为比版本 9 更轻的 IE 浏览器加载?

我更喜欢让我的页面尽可能简洁,所以我不想为了安抚仍在使用 ie8 及以下版本的愚蠢的少数人而加载不必要的代码。

【问题讨论】:

【参考方案1】:

--&gt; 结束评论。所以,这个评论的结尾:

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->

也是对Chrome渲染引擎的注释部分的结尾。

解决方案很简单:只需将评论标签移到 IE 条件之外。

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

【讨论】:

你摇滚!谢谢你 :) 只是等着让我接受你的回答。

以上是关于为啥 Chrome 会忽略 IE 条件标签?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - IE8 忽略条件

HTML1115:X-UA 兼容 META 标记('IE=9,IE=8,chrome=1')被忽略,因为文档模式已经完成

为啥 Intellij-IDEA 会忽略我的 tomcat/conf/server.xml 上下文标签?

为啥 Python 请求会忽略 verify 参数?

为啥 Javascript 会忽略单行 HTML 注释?

有一个图例会导致 IE 忽略字段集的顶部填充 - 替代方案?