Reputation: 73
Why does the following code not work in Safari?
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
console.log('theme changed');
});
Upvotes: 4
Views: 2368
Reputation: 3231
As noted here on caniuse.com and here on mozilla.org, MediaQueryList.addEventListener
doesn't work in Safari and IE, however you can use MediaQueryList.addListener
:
Older browsers should use addListener instead of addEventListener since MediaQueryList only inherits from EventTarget in newer browsers. [source]
Upvotes: 6