Files
smartsoltech_site/smartsoltech/static/assets/js/force-unblock.js

61 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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);
})();