首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Enquire.js + Media.match + Respond.js

Enquire.js + Media.match + Respond.js
EN

Stack Overflow用户
提问于 2013-05-01 23:48:09
回答 3查看 3.9K关注 0票数 4

我正在尝试让Enquire.js在遗留浏览器上工作。我使用文档中的Deep support方法:

代码语言:javascript
复制
Modernizr.load([
    {
        test: window.matchMedia,
        nope: "media.match.min.js"
    },

    "enquire-2.0.0.min.js",
    "plugins.js", // jquery plugins
    "main.js" // enquire-triggered functions + general code
]);

这样做的问题是我使用的是initializr.com的Modernizr+Respond,所以测试总是通过的。这会在IE8/9的enquire.js中触发JS错误。

通过删除respond.js并只使用普通的Modernizr,测试失败,Media.match加载,JS错误得到解决。但是,我在IE8中失去了对媒体查询的支持。

让所有东西协同工作的最好方法是什么?我已经尝试通过现代在与Media.match同时加载respond.js。如果我先加载它,我会看到和以前一样的JS错误。如果我第二次加载它,媒体查询就不起作用。我也尝试只加载它,而不是Media.match,但JS错误返回。

谢谢。

编辑:

在发布这篇文章后不久,我回滚到了enquire 1.5.6,使用了Respond.js,shouldDegrade选项,没有进行现代测试。IE8/9中没有JS错误,到目前为止一切似乎都运行得很好。

我仍然有兴趣知道是否有办法让它在2.0中工作,或者我现在是否应该坚持使用1.5.6?

EN

回答 3

Stack Overflow用户

发布于 2013-08-21 03:31:55

我在使用Enquire v2.0.2时遇到了同样的问题。我的解决方法是从respond.js中删除matchMedia,然后在加载respond.js之后加载media.match和enquire.js。我还没有用modernizr测试过这一点,但我能够在IE7和8中获得媒体查询支持和enquire.js,并且没有JS错误。

票数 4
EN

Stack Overflow用户

发布于 2014-02-12 20:52:41

我猜实际的问题是在respond.js中有matchMedia polyfill,但没有matchMedia.addListener plugin。因此,普通matchMedia的现代测试成功了,但随后会导致查询可能出现的错误(对象不支持此属性或方法)。

我自己不喜欢定制不包含matchMedia的respond.js,而只是在respond.js之后单独加载matchMedia.addListener插件。

票数 1
EN

Stack Overflow用户

发布于 2013-06-04 09:35:37

蒂姆

有点晚了,但是你看到这个了吗?我想这就是你要找的。

enquire.js legacy support

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16321516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档