мНемає опису редагування
мНемає опису редагування
Рядок 841: Рядок 841:


// =========================
// =========================
// КНОПКА ВИПАДКОВА СТОРІНКА (оригінальний функціонал, перенесена вліво)
// =========================
// КНОПКА ВИПАДКОВА СТОРІНКА (виправлена версія)
// =========================
// =========================
function createRandomButton() {
function createRandomButton() {
Рядок 879: Рядок 880:
     `;
     `;
      
      
     // ОРИГІНАЛЬНИЙ ОБРОБНИК КЛІКУ З ВАШОГО КОДУ
     // ВИПРАВЛЕНИЙ ОБРОБНИК КЛІКУ
     btn.addEventListener('click', function(e) {
     btn.addEventListener('click', function(e) {
         e.preventDefault();
         e.preventDefault();
Рядок 889: Рядок 890:
         btn.disabled = true;
         btn.disabled = true;
          
          
         // Використовуємо window.location.replace для чистого переходу
         // Використовуємо звичайний перехід замість replace
         setTimeout(() => {
         setTimeout(() => {
             window.location.replace('/w/index.php/Спеціальна:Випадкова_сторінка');
             window.location.href = '/w/index.php/Спеціальна:Випадкова_сторінка';
         }, 100);
         }, 100);
     });
     });
Рядок 994: Рядок 995:


// =========================
// =========================
// АВТОМАТИЧНЕ ВІДНОВЛЕННЯ КНОПКИ ПІСЛЯ ПЕРЕХОДУ
// ПОКРАЩЕНЕ ВІДНОВЛЕННЯ КНОПОК ПІСЛЯ ПЕРЕХОДУ
// =========================
// =========================
function restoreRandomButton() {
function restoreButtons() {
     // Перевіряємо чи ми на випадковій сторінці
     // Для всіх тем - кнопка "Як це працює?"
     const isRandomPage = window.location.href.includes('Випадкова_сторінка') ||
     if (!document.getElementById('how-it-works-btn')) {
                        window.location.href.includes('Special:Random');
        createHowItWorksButton();
    }
      
      
     if (isRandomPage && document.body.classList.contains('skin-minerva')) {
    // Для мобільної версії - кнопка "Випадкова сторінка"
        // Чекаємо повного завантаження сторінки
     if (document.body.classList.contains('skin-minerva') && !document.getElementById('float-random-btn')) {
        setTimeout(() => {
        createRandomButton();
            if (!document.getElementById('float-random-btn')) {
                createRandomButton();
            }
        }, 500);
     }
     }
   
    adjustForKeyboard();
}
}


Рядок 1039: Рядок 1039:
// ЗАГАЛЬНИЙ ІНІЦІАЛІЗАТОР
// ЗАГАЛЬНИЙ ІНІЦІАЛІЗАТОР
// =========================
// =========================
document.addEventListener('DOMContentLoaded', function() {
 
     // Для всіх тем - кнопка "Як це працює?"
// Основний ініціалізатор
    createHowItWorksButton();
function initializeAll() {
   
     restoreButtons();
    // Для мобільної версії
     if (document.body.classList.contains('skin-minerva')) {
     if (document.body.classList.contains('skin-minerva')) {
         hideMobileElements();
         hideMobileElements();
        createRandomButton();
     }
     }
   
}
    adjustForKeyboard();
 
   
// Ініціалізація при завантаженні DOM
    setTimeout(() => {
document.addEventListener('DOMContentLoaded', function() {
        if (!document.getElementById('how-it-works-btn')) {
    console.log('DOM завантажено - ініціалізація кнопок');
            createHowItWorksButton();
    initializeAll();
        }
        if (document.body.classList.contains('skin-minerva') && !document.getElementById('float-random-btn')) {
            createRandomButton();
        }
        adjustForKeyboard();
        hideMobileElements();
    }, 2000);
});
});


// Ініціалізація при повному завантаженні сторінки
window.addEventListener('load', function() {
window.addEventListener('load', function() {
     if (document.body.classList.contains('skin-minerva')) {
     console.log('Сторінка завантажена - ініціалізація кнопок');
         setTimeout(createRandomButton, 500);
    setTimeout(initializeAll, 100);
});
 
// Ініціалізація при кожному переході між сторінками
window.addEventListener('pageshow', function(event) {
    console.log('Перехід на нову сторінку - відновлення кнопок');
    if (event.persisted) {
        // Сторінка завантажена з кешу браузера
        setTimeout(initializeAll, 50);
    } else {
        // Звичайне завантаження сторінки
         setTimeout(initializeAll, 100);
     }
     }
    setTimeout(createHowItWorksButton, 500);
    adjustForKeyboard();
});
});


// Резервна ініціалізація
setTimeout(function() {
setTimeout(function() {
     if (document.body.classList.contains('skin-minerva') && !document.getElementById('float-random-btn')) {
     if (!document.getElementById('how-it-works-btn') ||
         createRandomButton();
        (document.body.classList.contains('skin-minerva') && !document.getElementById('float-random-btn'))) {
         console.log('Резервна ініціалізація кнопок');
        initializeAll();
     }
     }
    if (!document.getElementById('how-it-works-btn')) {
}, 2000);
        createHowItWorksButton();
    }
    adjustForKeyboard();
}, 3000);


// Відновлюємо кнопки після переходу
// Додаткова перевірка після завантаження контенту
window.addEventListener('pageshow', restoreRandomButton);
if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initializeAll);
} else {
    setTimeout(initializeAll, 100);
}