MediaWiki:Common.js: различия между версиями

Страница интерфейса MediaWiki
Нет описания правки
(Отмена правки 8878, сделанной Dantes (обсуждение))
Метка: отмена
Строка 1: Строка 1:
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
function insertAfter(newNode, referenceNode) {
    referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
// Код данте ниже
function setupTabs() {
    const tabHeaders = document.querySelectorAll('.tab-header');
    const tabContents = document.querySelectorAll('.tab-content');
    console.log("Количество заголовков вкладок:", tabHeaders.length);
    console.log("Количество содержимого вкладок:", tabContents.length);
    tabHeaders.forEach(function(header, index) {
        header.addEventListener('click', function() {
            console.log("Клик по вкладке:", index);
            tabHeaders.forEach(function(h) {
                h.classList.remove('active');
            });
            tabContents.forEach(function(c) {
                c.classList.remove('active');
            });
            header.classList.add('active');
            tabContents[index].classList.add('active');
        });
    });
}
mw.hook('wikipage.content').add(setupTabs);
// выше, ниже мой недо скрип
// Конец данте
function addCopyButtons() {
    var codeBlocks = document.querySelectorAll('code:not(.copy-processed)');
    codeBlocks.forEach(function(block) {
        var copyButton = document.createElement('button');
        copyButton.textContent = 'Copy';
        copyButton.className = 'copy-button';
        copyButton.addEventListener('click', function() {
            var textArea = document.createElement('textarea');
            textArea.value = block.textContent;
            document.body.appendChild(textArea);
            textArea.select();
            document.execCommand('copy');
            document.body.removeChild(textArea);
            alert('Содержимое скопировано!');
        });
        insertAfter(copyButton, block);
        block.classList.add('copy-processed');
    });
}
// Функция для форматирования содержимого блоков <code>
function formatCodeBlocks() {
    var codeBlocks = document.querySelectorAll('code:not(.formatted)');
    codeBlocks.forEach(function(block) {
        // Заменяем пробелы на неразрывные пробелы и вставляем <br> для переносов строк
        block.innerHTML = block.textContent.replace(/ /g, '\u00A0').replace(/\n/g, '<br>');
        block.classList.add('formatted');
    });
}
function formatNullDocsAbout() {
    $('.docs-about').each(function() {
        if ($(this).html().includes("{{{Примечание документа}}}")) {
            $(this).hide();
        }
    });
}
// Вызываем функции после загрузки страницы
mw.hook('wikipage.content').add(formatCodeBlocks);
mw.hook('wikipage.content').add(addCopyButtons);
mw.hook('wikipage.content').add(formatNullDocsAbout);
document.addEventListener("DOMContentLoaded", function() {
document.addEventListener("DOMContentLoaded", function() {
     var headers = document.querySelectorAll("h3");
     var headers = document.querySelectorAll("h3");

Версия от 08:00, 26 августа 2024

document.addEventListener("DOMContentLoaded", function() {
    var headers = document.querySelectorAll("h3");
    headers.forEach(function(header) {
        header.style.cursor = "pointer";
        header.addEventListener("click", function() {
            var nextElement = header.nextElementSibling;
            if (nextElement.style.display === "none") {
                nextElement.style.display = "block";
            } else {
                nextElement.style.display = "none";
            }
        });
    });
});


    document.addEventListener('DOMContentLoaded', function() {
        const buttons = document.querySelectorAll('.custom-button');

        buttons.forEach(button => {
            button.addEventListener('click', function() {
                // Добавляем класс для активного состояния
                this.classList.toggle('button-active');
            });
        });
    });