2013-01-18 36 views
8

我试图找出最好的方式来获得enquire.js对传统浏览器工作(即6-9)。在咨询网站上,它说使用modernizr检查matchMedia支持,然后在不支持的情况下加载polyfill。enquire.js传统支持

Modernizr.load([ 
    //first test need for polyfill 
    { 
     test: window.matchMedia, 
     nope: "/path/to/polyfill.js" 
    }, 

    //and then load enquire 
    "/path/to/enquire.js" 
]); 

看着它暗示填充工具,它说,Modernizr的已经包括它Modernizr.mq()。

Used in: 
    Respond.js 
    FormFactor 
    Modernizr 
https://github.com/paulirish/matchMedia.js/ 

我已经研究过这个,但是找不到一种方法来完成这项工作。

回答

20

打探笔者在这里!

所以总是有关于matchMedia填充工具有点混乱。它不会将CSS3媒体查询支持填充到传统浏览器中。它所做的是为那些支持CSS3媒体查询但不提供此API的浏览器填充matchMedia JavaScript API。请参阅support for matchMedia。例如,IE9支持CSS3媒体查询,但没有matchMedia JS API,这是Paul Irish的matchMedia polyfill的目标。

如果你正在寻找一个全功能的填充工具,给人体面媒体查询询问服务旧版浏览器,我可以建议使用大卫骑士的媒体是否匹配?我一直在与他一起工作来测试这一点,并已证明支持所有的方式回到IE6 - 它的作品魅力:)你可以在这里找到:https://github.com/weblinc/media-match。您可以完全按照我使用Modernizr的建议加载它,只需更换适当的零件即可。

希望帮助,非常乐意回答您有任何问题。

+0

感谢您的解释。我最终只是使用Paul Irish的。我没有为响应式样式提供polyfill,所以我不需要基于媒体查询有条件地加载JavaScript。我只需要多思考一下。再次感谢您的帮助! – Dan

+0

@WickyNilliams这解决了我在IE中遇到的问题,请将其添加到您的文档中非常有用。为什么其他作者不能像你一样有帮助 –

+0

我一直在努力更新文档一段时间。它会有例子,更好的解释和基于场景的所有功能的步骤:)保持你的眼睛去皮,它几乎完成 – WickyNilliams