gpt4 book ai didi

javascript - 如果支持媒体查询,如何进行基因测试?

转载 作者:行者123 更新时间:2023-11-29 15:42:29 24 4
gpt4 key购买 nike

可能听起来很奇怪,但我正在寻找一种简单的方法来测试浏览器是否支持任何媒体查询。

我知道有 respondjs , 它带有 window.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");

但是当使用 matchMedia polyfill 时,这(当然)在 IE8 中返回 true。另外,我无法测试 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;

},

因此,如果支持 mediaQueries,则无需进行通用测试。

最佳答案

你可以在modernizr中选择这个选项

http://modernizr.com/download/

关于javascript - 如果支持媒体查询,如何进行基因测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com