我的电脑是 macOS Monterey(版本 12.6.7),Google Chrome 版本 121.0.6167.184(官方版本)(x86_64)
我正在尝试通过javascript检测Chrome是否处于深色模式。
(1) 我将 Chrome 设置为深色模式。
(2) 在 Chrome 中打开一个地址栏为空的新选项卡。
在控制台中:
window.matchMedia('(prefers-color-scheme: dark)')
返回:
MediaQueryList {
media: '(prefers-color-scheme: dark)',
matches: true,
onchange: null
}
“matches: true”是预期的,因为 chrome 处于深色模式。
(3) 在地址栏中输入 https://translate.google.com/
在控制台中:
window.matchMedia('(prefers-color-scheme: dark)')
返回:
MediaQueryList {
media: '(prefers-color-scheme: dark)',
matches: false,
onchange: null
}
当 chrome 仍处于深色模式时,为什么“matches: false”?
我期待看到
window.matchMedia('(prefers-color-scheme: dark)’).matches === true
当 chrome 处于深色模式时,无论地址栏是否为空。
我认为这仍然是一个悬而未决的问题https://issues.chromium.org/issues/40642550