61 lines
2.3 KiB
JavaScript
61 lines
2.3 KiB
JavaScript
// Force unblock - агрессивная очистка блокирующих элементов
|
||
(function() {
|
||
'use strict';
|
||
|
||
function forceUnblock() {
|
||
console.log('ForceUnblock: Starting cleanup...');
|
||
|
||
// Удаляем loading screen
|
||
const loadingScreen = document.getElementById('loading-screen');
|
||
if (loadingScreen) {
|
||
loadingScreen.remove();
|
||
console.log('ForceUnblock: Loading screen removed');
|
||
}
|
||
|
||
// Убираем modal-open с body
|
||
document.body.classList.remove('modal-open');
|
||
document.body.style.overflow = '';
|
||
document.body.style.paddingRight = '';
|
||
console.log('ForceUnblock: Body cleaned');
|
||
|
||
// Закрываем все модальные окна
|
||
document.querySelectorAll('.modal').forEach(modal => {
|
||
modal.classList.remove('show');
|
||
modal.style.display = 'none';
|
||
modal.setAttribute('aria-hidden', 'true');
|
||
modal.removeAttribute('aria-modal');
|
||
});
|
||
console.log('ForceUnblock: Modals closed');
|
||
|
||
// Удаляем все backdrop элементы
|
||
document.querySelectorAll('.modal-backdrop').forEach(backdrop => {
|
||
backdrop.remove();
|
||
});
|
||
console.log('ForceUnblock: Backdrops removed');
|
||
|
||
// Убираем pointer-events: none с всех элементов кроме скрытых модалов
|
||
document.querySelectorAll('[style*="pointer-events"]').forEach(el => {
|
||
if (!el.classList.contains('modal') || !el.classList.contains('show')) {
|
||
el.style.pointerEvents = '';
|
||
}
|
||
});
|
||
console.log('ForceUnblock: Pointer events cleaned');
|
||
|
||
// Проверяем, что body кликабельно
|
||
document.body.style.pointerEvents = 'auto';
|
||
|
||
console.log('ForceUnblock: Cleanup complete!');
|
||
}
|
||
|
||
// Выполняем сразу
|
||
if (document.readyState === 'loading') {
|
||
document.addEventListener('DOMContentLoaded', forceUnblock);
|
||
} else {
|
||
forceUnblock();
|
||
}
|
||
|
||
// И еще раз через небольшую задержку для надежности
|
||
setTimeout(forceUnblock, 100);
|
||
setTimeout(forceUnblock, 500);
|
||
})();
|