如何在浏览器 JavaScript 中检测 OS X 是不是处于暗模式? [复制]

Posted

技术标签:

【中文标题】如何在浏览器 JavaScript 中检测 OS X 是不是处于暗模式? [复制]【英文标题】:How to detect if OS X is in dark mode in browser JavaScript? [duplicate]如何在浏览器 JavaScript 中检测 OS X 是否处于暗模式? [复制] 【发布时间】:2019-09-05 09:26:09 【问题描述】:

类似于“How to detect if OS X is in dark mode in browsers?”,仅适用于 javascript

如何在 Safari/Chrome/Firefox 中检测用户的系统是否处于新的 macOS 暗模式,并将结果作为布尔值获取?

【问题讨论】:

【参考方案1】:

使用matchMedia 函数检查是否符合prefers-color-scheme 媒体规则:

const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
// or
const isLight = window.matchMedia('(prefers-color-scheme: light)').matches;

您还可以在开启/关闭深色模式时收到通知:

const media = window.matchMedia('(prefers-color-scheme: dark)');

media.addListener(() => 
  alert(`The mode has changed to $media.matches ? 'dark' : 'light'`);
);

【讨论】:

以上是关于如何在浏览器 JavaScript 中检测 OS X 是不是处于暗模式? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用javascript检测浏览器中的手机事件?

如何以编程方式检测是不是在 Windows 桌面应用程序中启用/禁用了 javascript? (网络浏览器控件)

如何在Javascript中检测Safari 10浏览器?

在javascript中如何检测客户端的浏览器和操作系统类型

如何检测 WebBrowser 控件中的 Javascript 执行

javascript [Dynamic Body Class]检测OS和设备并添加到正文的类中。把它放在doc.ready #javascript中