屏蔽 ResizeObserver 报错

This commit is contained in:
2025-11-25 22:22:35 +08:00
parent cb4da5effa
commit cc9a85e85a

View File

@@ -1,3 +1,27 @@
// 全局屏蔽 ResizeObserver 错误
// 这是一个常见的 workaround用于处理某些环境下 ResizeObserver 导致的循环限制错误。
// 它通过包装 ResizeObserver 的回调函数来捕获并阻止错误向上冒泡,但不会修复根本原因。
if (typeof window !== 'undefined' && window.ResizeObserver) {
const originalResizeObserver = window.ResizeObserver;
window.ResizeObserver = class ResizeObserver extends originalResizeObserver {
constructor(callback) {
super((entries, observer) => {
// 使用 requestAnimationFrame 延迟执行回调,以避免 ResizeObserver loop limit exceeded 错误
window.requestAnimationFrame(() => {
try {
callback(entries, observer);
} catch (error) {
// 捕获 ResizeObserver 错误,并打印到控制台,防止应用崩溃
console.error('ResizeObserver 错误被捕获:', error);
// 如果需要,可以在这里选择断开观察者,以防止进一步的错误
// observer.disconnect();
}
});
});
}
};
}
import {createApp} from 'vue'; import {createApp} from 'vue';
import ElementPlus from 'element-plus'; import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css'; import 'element-plus/dist/index.css';