clash-verge-rev/src/polyfills/matchMedia.js
2024-05-30 20:27:12 +08:00

37 lines
1.0 KiB
JavaScript

(function () {
if (window.matchMedia && window.matchMedia("all").addEventListener) {
return;
}
const originalMatchMedia = window.matchMedia;
window.matchMedia = function (query) {
const mediaQueryList = originalMatchMedia(query);
if (!mediaQueryList.addEventListener) {
mediaQueryList.addEventListener = function (eventType, listener) {
if (eventType !== "change" || typeof listener !== "function") {
console.error("Invalid arguments for addEventListener:", arguments);
return;
}
mediaQueryList.addListener(listener);
};
}
if (!mediaQueryList.removeEventListener) {
mediaQueryList.removeEventListener = function (eventType, listener) {
if (eventType !== "change" || typeof listener !== "function") {
console.error(
"Invalid arguments for removeEventListener:",
arguments
);
return;
}
mediaQueryList.removeListener(listener);
};
}
return mediaQueryList;
};
})();