Как мой веб-сайт может определить, использует ли браузер темную / светлую тему, а НЕ, если ОС использует тему? - PullRequest
1 голос
/ 13 апреля 2020

Я пытаюсь изменить значок сайта в зависимости от темы браузера. Я пробовал window.matchMedia('(prefers-color-scheme: dark)').matches, но, похоже, он определяет только цветовую тему компьютеров, а не браузер. Возможно ли получить только тему браузера?

1 Ответ

1 голос
/ 13 апреля 2020

Вы ошибаетесь, prefers-color-scheme ТАКЖЕ получает предпочтение теме браузера - но не так, как вы думаете. Если вы думаете об этих темах браузера, которые вы найдете в Chrome Web Store или Firefox Add-On Store, к сожалению, ни один из текущих браузеров не реализует такие возможности, чтобы он соответствовал WebExtensions.

prefers-color-scheme получает тему из ОС, но ТАКЖЕ браузер, если он переопределен или находится за предпочтениями пользователя. На Firefox добавление ui.systemUsesDarkTheme к about:config и установка его на 0 всегда делает (prefers-color-scheme: dark) true независимо от предпочтения ОС. На Android браузер Samsung, я полагаю, имеет опцию в меню из трех точек, чтобы все время включать темный режим, который также отменяет настройки Android. Итак, продолжайте использовать prefers-color-scheme и ожидайте, что будущие браузеры сделают то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...