0

我正在使用此代码来测试媒体查询支持,因为我想为例如 IE8 加载 polyfill。

yepnope({
    test : Modernizr.mq('(only all)'),
    nope : ['scripts/respond.js']
});

它可以工作(=respond.js 在 oder IE 中加载),但现在我刚刚发现 response.js 也在 Safari 中加载。

阅读完文档后,我相信 response.js 已加载,因为 Safari支持某些媒体查询。这是真的?我该如何解决这个问题?

4

2 回答 2

2

问题不在于 Safari 不支持某些媒体查询,而是那(only all)不是有效的媒体查询。only关键字或媒体类型周围不应有括号all

yepnope({
    test : Modernizr.mq('only all'),
    nope : ['scripts/respond.js']
});
于 2013-03-02T16:17:12.473 回答
0

我也在使用modernizr,但发现为IE7和IE8添加媒体查询支持的最简单方法就是在页眉中使用类似这样的东西

<!--[if lt IE 9]>
  <script src="js/respond.js"></script>
<![endif]-->

确保在 CSS 文件加载后调用 respond.js。

这对我来说效果很好。

祝你好运!

于 2013-03-02T16:14:32.297 回答