javascript - 匹配媒体以检测首选配色方案不适用于 Safari
问题描述
我正在尝试根据用户的系统设置实现暗模式。为此,我使用 @media 查询prefers-color-scheme: dark
。这可行,但我还需要在 JavaScript 中进行一些检查。
detectColorScheme() {
if (!window.matchMedia) {
return false;
} else if (window.matchMedia('(prefers-color-scheme: dark').matches) {
this.isDarkMode = true;
}
}
此代码适用于 Chrome,但不适用于 Safari。即使激活了系统暗模式,它仍然返回 false(仅适用于 Safari)。
解决方案
推荐阅读
- angular - 测试环境量角器:元素在点 (x, x) 处不可点击,其他元素将收到点击
- scala - Spark Streaming:跨批次聚合值
- json - ESP32 跳过 JSON 中的最后一个值
- vue.js - 引导下拉菜单需要哪些文件才能工作?
- ios - 如何访问 SecKeyCreateRandomKey() 生成的公钥中的字节?
- node.js - 如何将 NODE_EXTRA_CA_CERTS 的值传递给使用 Serverless 部署的 AWS Lambda?
- google-cloud-platform - BigQuery - “经过的时间”或“消耗的时间”,哪个是更好的衡量标准?
- c# - 使用 SSIS 将 CSV 文件拆分为 SQL 数据库表
- c# - 依赖属性的强制值未传播到目标或源
- linux - Raspberry Pi 蓝牙连接错误:“对等方重置连接”