0

我正在运行以下代码:

var hasMatchMediaSupport = (typeof window.matchMedia !== 'undefined') ? !!window.matchMedia('screen').matches : 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 在隐藏的 iframe 内无法正确运行

4

1 回答 1

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>

参考

于 2016-11-17T20:07:06.850 回答