МедияУики:Common.js: Разлика между версии
Направо към навигацията
Направо към търсенето
Редакция без резюме |
Редакция без резюме |
||
Ред 51: | Ред 51: | ||
initDarkModeToggle(); | initDarkModeToggle(); | ||
// Изчакваме зареждането на съдържанието на страницата | |||
document.addEventListener("DOMContentLoaded", function () { | |||
// Избираме всички кодови блокове със синтактично оцветяване | |||
const blocks = document.querySelectorAll(".mw-highlight"); | |||
// За всеки намерен блок добавяме бутон | |||
blocks.forEach((block) => { | |||
// Създаваме HTML <button> елемент | |||
const button = document.createElement("button"); | |||
button.innerHTML = "📋 Копирай кода"; | |||
// Добавяме стилове към бутона | |||
button.style.cssText = ` | |||
margin-top: 6px; | |||
background: #238636; | |||
color: #fff; | |||
border: none; | |||
padding: 6px 12px; | |||
border-radius: 6px; | |||
cursor: pointer; | |||
font-size: 13px; | |||
font-family: inherit; | |||
`; | |||
// Когато бутонът бъде натиснат... | |||
button.addEventListener("click", () => { | |||
// Вземаме текста от кодовия блок | |||
const code = block.innerText; | |||
// Копираме текста в клипборда | |||
navigator.clipboard.writeText(code).then(() => { | |||
// Смяна на текста на бутона за обратна връзка | |||
button.innerHTML = "✅ Копирано!"; | |||
// След 2 секунди връщаме оригиналния текст | |||
setTimeout(() => (button.innerHTML = "📋 Копирай кода"), 2000); | |||
}); | |||
}); | |||
// Поставяме бутона под кодовия блок | |||
block.parentNode.insertBefore(button, block.nextSibling); | |||
}); | |||
}); |
Версия от 10:52, 2 април 2025
/* Този файл съдържа код на Джаваскрипт и се зарежда при всички потребители. */
/* 🌙 Тъмен режим */
console.log("✅ Common.js се зарежда!");
function initDarkModeToggle() {
if (!document.body) {
return setTimeout(initDarkModeToggle, 100); // изчакай, ако body още не е заредено
}
const toggle = document.createElement("button");
toggle.innerText = "🌙";
toggle.id = "darkModeToggle";
toggle.style.position = "fixed";
toggle.style.top = "15px";
toggle.style.right = "15px";
toggle.style.zIndex = "9999";
toggle.style.padding = "8px 12px";
toggle.style.borderRadius = "8px";
toggle.style.border = "none";
toggle.style.background = "#333";
toggle.style.color = "#fff";
toggle.style.cursor = "pointer";
toggle.style.fontSize = "18px";
toggle.title = "Превключи тъмен/светъл режим";
document.body.appendChild(toggle);
const enableDark = () => {
document.documentElement.classList.add("dark-mode");
localStorage.setItem("darkMode", "on");
toggle.innerText = "☀️";
};
const disableDark = () => {
document.documentElement.classList.remove("dark-mode");
localStorage.setItem("darkMode", "off");
toggle.innerText = "🌙";
};
toggle.addEventListener("click", () => {
if (document.documentElement.classList.contains("dark-mode")) {
disableDark();
} else {
enableDark();
}
});
if (localStorage.getItem("darkMode") === "on") {
enableDark();
}
}
initDarkModeToggle();
// Изчакваме зареждането на съдържанието на страницата
document.addEventListener("DOMContentLoaded", function () {
// Избираме всички кодови блокове със синтактично оцветяване
const blocks = document.querySelectorAll(".mw-highlight");
// За всеки намерен блок добавяме бутон
blocks.forEach((block) => {
// Създаваме HTML <button> елемент
const button = document.createElement("button");
button.innerHTML = "📋 Копирай кода";
// Добавяме стилове към бутона
button.style.cssText = `
margin-top: 6px;
background: #238636;
color: #fff;
border: none;
padding: 6px 12px;
border-radius: 6px;
cursor: pointer;
font-size: 13px;
font-family: inherit;
`;
// Когато бутонът бъде натиснат...
button.addEventListener("click", () => {
// Вземаме текста от кодовия блок
const code = block.innerText;
// Копираме текста в клипборда
navigator.clipboard.writeText(code).then(() => {
// Смяна на текста на бутона за обратна връзка
button.innerHTML = "✅ Копирано!";
// След 2 секунди връщаме оригиналния текст
setTimeout(() => (button.innerHTML = "📋 Копирай кода"), 2000);
});
});
// Поставяме бутона под кодовия блок
block.parentNode.insertBefore(button, block.nextSibling);
});
});