Когда юзер в настройках меняет средний шрифт на маленький или большой, меняется число пикселей в `1rem`. Как отследить это событие?
Попался вот такой совет:
const observer = new MutationObserver(([mutation]) =>
{
// 1
if (mutation.type === 'attributes' && mutation.attributeName === 'style')
{
// 2
}
});
observer.observe(document.documentElement);
Но он нихрена не работает. Во-первых, согласно документации же, `observer.observe()` нельзя вызывать, не указав, что именно надо отслеживать. Т.е. код явно писался без проверки. А если добавить
observer.observe(document.documentElement, {attributes: true} );
(мы же проверяем мутацию атрибутов), то не только в `// 2`, но даже в `// 1` мы не приходим при смене шрифта.
Логику такого ответа я примерно понимаю. Мы же получаем число пикселей в `1rem` вот так:
parseFloat(getComputedStyle(document.documentElement).fontSize)
И значит, он, по идее, должен (?) мутировать. Но по факту этого не происходит.