我在页面上使用 matchMedia,我注意到在 Chrome for Android 上,检查匹配项有效,但是当您尝试向媒体查询添加侦听器时,回调函数永远不会触发。
我在桌面上运行了相同的代码,它工作正常,但它似乎没有在使用 Chrome 作为浏览器的 Android 4.x 设备上调用监听器中的回调。这还没有在浏览器中实现吗?
var width768Check = window.matchMedia("(min-width: 768px)");
console.log(width768Check.matches);
console.log(width768Check.addListener);
width768Check.addListener(function(mediaQueryList) {
console.log(mediaQueryList.matches);
});
更新
我一直在使用带有 Google Chrome v18.0.1025469 和 Android v4.2.1 的 Nexus 7 平板电脑以及带有相同版本的 Google Chrome 和不同版本的 Android v4.0.3 的 Asus Transformer 平板电脑进行测试。
有趣的是,华硕平板电脑正确使用了监听回调函数,而 Nexus 7 没有。我不确定为什么在较新版本的 Android 操作系统上使用相同版本的 Chrome 会导致问题。此外,对于 Nexus 7,我下载了 Dolphin Browser,一切正常。