JS Код стилизации блока кода
document.addEventListener("DOMContentLoaded", function () {
// Преобразуем все [code] в стилизованный <pre>
document.querySelectorAll("code").forEach((codeBlock) => {
// Проверяем, если уже стилизовано, пропускаем
if (codeBlock.classList.contains("styled")) return;
// Добавляем класс для предотвращения повторной обработки
codeBlock.classList.add("styled");
// Создаем кнопку "Копировать"
const copyButton = document.createElement("button");
copyButton.textContent = "Копировать";
copyButton.className = "copy-code-btn";
// Устанавливаем относительное позиционирование для [code]
codeBlock.style.position = "relative";
// Добавляем кнопку в блок [code]
codeBlock.appendChild(copyButton);
// Обработчик для кнопки копирования
copyButton.addEventListener("click", () => {
// Исключаем кнопку из копируемого текста
const textToCopy = Array.from(codeBlock.childNodes)
.filter((node) => node.nodeType === Node.TEXT_NODE || node.nodeName !== "BUTTON")
.map((node) => node.textContent)
.join("");
// Копируем текст
navigator.clipboard.writeText(textToCopy).then(() => {
copyButton.textContent = "Скопировано!";
setTimeout(() => (copyButton.textContent = "Копировать"), 2000);
}).catch(() => {
copyButton.textContent = "Ошибка!";
setTimeout(() => (copyButton.textContent = "Копировать"), 2000);
});
});
});
});
© SALAKHIEV.RU, 2026
Вся информация, размещённая на сайте salakhiev.ru, предназначена исключительно для ознакомления и не может рассматриваться как руководство к действию, гарантия результата или техническая рекомендация. Администрация сайта не несёт ответственности за возможные убытки или иные последствия, вызванные использованием представленных материалов. Пользователь принимает на себя все риски, связанные с применением информации, размещённой на данном ресурсе. Политика конфиденциальности здесь.