如何一般地测试是否支持媒体查询
How to generically test if mediaqueries are supported?
可能听起来很奇怪,但我正在寻找一种简单的方法来测试浏览器是否支持any
mediaqueries
我知道有respondjs,它带有一个窗口。matchMedia polyfill,但即使使用它,我仍然需要查询特定的查询,如:
window.matchMedia("all and (min-width: 400px"));
返回一个obj.matches = true/false
。
我要找的是一种通用的测试方法,"如果mediaQueries被支持",是或否。
我正在使用:
window.matchMedia("screen and (orienation:landscape),
screen and (orientation:portrait)");
但是我真的不喜欢这种测试方式。
我也试过:
window.matchMedia("all");
,但这(当然)返回true
在IE8使用matchMedia
填充。另外,我不能测试matchMedia
本身,因为我会错过很多支持媒体查询的浏览器,但不支持window.matchMedia
(caniuse)。
问题:
是否有一种很好的简单的方法来测试媒体查询支持?如果可能的话,我根本不想使用window.matchMedia
来做这件事。
我还检查了Modernizr,它还测试了特定的mediaQuery条件(mq):
testMediaQuery = function( mq ) {
var matchMedia = window.matchMedia || window.msMatchMedia;
if ( matchMedia ) {
return matchMedia(mq).matches;
}
var bool;
injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {
bool = (window.getComputedStyle ?
getComputedStyle(node, null) :
node.currentStyle)['position'] == 'absolute';
});
return bool;
},
你可以在modernizr
中选择这个选项http://modernizr.com/download/相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- 415(不支持的媒体类型)错误
- 不支持的媒体类型错误
- 415 使用 JQuery/FormData 和 Web API 的不受支持的媒体类型
- IE8 支持使用响应.js进行媒体查询
- 不支持Java POST请求的媒体类型
- Ajax/JSON服务器的响应状态为415(不支持的媒体类型)
- 预先检查浏览器's媒体(视频文件)支持
- 如何一般地测试是否支持媒体查询
- CORS issue和415不支持媒体响应
- 如何复制这个css媒体jquery使用javascript支持IE
- 我如何将我的媒体查询与java脚本集成,以支持IE中的@media查询
- 415(不支持的媒体类型)在尝试进行JSON调用时出错
- java POST 415(不支持的媒体类型)
- 在不支持CSS媒体查询的浏览器中使用Javascript
- 支持iPhone的JavaScript流媒体播放器
- POST请求返回415-不支持的媒体类型
- 有哪些流行的网络媒体播放器?此外,他们是否能够支持.mpeg或.avi文件
- 415 不支持的媒体类型错误 - Domo 连接器