Quiero detectar el cambio de modo oscuro en JavaScript. Las cosas funcionan bien cuando llamo a window.matchMedia("(prefers-color-scheme: dark)").addEventListener directamente.
Sin embargo, cuando asigno window.matchMedia("(prefers-color-scheme: dark)").addEventListener a una variable:
var func = window.matchMedia("(prefers-color-scheme: dark)").addEventListener; func("change", () => console.log("test"));La función EventListener no se ejecuta.
Código para reproducir:
function test_1() { var MediaQueryList = window.matchMedia("(prefers-color-scheme: dark)"); MediaQueryList.addEventListener("change", () => { console.log("Call MediaQueryList.addEventListener"); }); } function test_2() { var MediaQueryList = window.matchMedia("(prefers-color-scheme: dark)"); var func = MediaQueryList.addEventListener; func("change", () => { console.log("Call MediaQueryList.addEventListener use variable"); }); } test_1(); test_2();CodePen: https://codepen.io/sortujayde/pen/jOYLEaK?editors=1111
Versión cromada: 99.0.4844.84