window.matchMedia('screen')会在Web浏览器中返回false吗?

时间:2015-10-21 06:19:06

标签: javascript firefox cross-browser screen matchmedia

我正在运行以下代码:

var hasMatchMediaSupport = (typeof window.matchMedia !== 'undefined') ? !!window.matchMedia('screen').matches : false;

为什么这个检查会返回false是否有任何原因?这种情况仅在Firefox浏览器中,在各种操作系统中发生。一个相关的细节是,此代码在广告单元内执行,有时在HTML5广告单元内执行。

这种情况发生在Windows 7,Windows 8,Windows 10,Mac OS X 10.8和其他几种操作系统中,Firefox版本从36到41不等。

编辑: 在这里找到了这个错误报告,并且能够在Mac OS X 10.10上的Firefox 41中复制 - matchMedia does not run correctly inside of hidden iframes

1 个答案:

答案 0 :(得分:0)

已修复错误,现在返回非空值。例如:



<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<style>
	.hidden { display: none; }
</style>
	
</head>

<body>
  
<iframe class="hidden" src="data:text/html;charset=utf8;,<script>document.title = window.matchMedia('screen').matches;alert(document.title)</script>" height="200" width="200"></iframe>

</body>

</html>
&#13;
&#13;
&#13;

<强>参考