我正在运行以下代码:
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。
答案 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;
<强>参考强>