我正在试图找出让enquire.js在旧版浏览器上工作的最佳方式(即6-9)。在查询的网站上,它说使用modernizr检查matchMedia支持,然后加载polyfill,如果它不受支持。
Modernizr.load([
//first test need for polyfill
{
test: window.matchMedia,
nope: "/path/to/polyfill.js"
},
//and then load enquire
"/path/to/enquire.js"
]);
看看它建议的polyfill,它说modernizr已经将它包含在Modernizr.mq()中。
Used in:
Respond.js
FormFactor
Modernizr
https://github.com/paulirish/matchMedia.js/
我已经调查了这个,但找不到让这项工作的方法。
答案 0 :(得分:20)
在这里询问作者!
所以对matchMedia polyfill总是有点混乱。它不会将CSS3媒体查询支持填充到旧版浏览器中。它的作用是为那些支持CSS3媒体查询但不提供此API的浏览器填充matchMedia javascript API。请参阅此处support for matchMedia。例如,IE9支持CSS3媒体查询,但没有matchMedia JS API,这是Paul Irish的matchMedia polyfill的目标。
如果您正在寻找功能齐全的polyfill,它可以为旧浏览器提供合适的媒体查询,我可以建议使用David Knight的媒体匹配吗?我和他一起工作来测试这个,并且已经证明支持一直回到IE6 - 它很有魅力:)你可以在这里找到:https://github.com/weblinc/media-match。您可以完全按照我对Modernizr的建议有条件地加载它,只需更换相应的部件。
希望有帮助,很乐意回答您的任何进一步问题。