MediaWiki:Gadget-main-spoiler-warning-screen.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 30: | Line 30: | ||
let buttons = document.createElement("div"); | let buttons = document.createElement("div"); | ||
let backBtn = document.createElement("button"); | let backBtn = document.createElement("button"); | ||
backBtn.innerText = "Go back"; | backBtn.innerText = "Go back"; | ||
backBtn.addEventListener("click", (e) => { | |||
window.history.back(); | |||
}); | |||
buttons.appendChild(backBtn); | buttons.appendChild(backBtn); | ||
let continueBtn = document.createElement("button"); | let continueBtn = document.createElement("button"); | ||
continueBtn.innerText = "Continue and show page"; | continueBtn.innerText = "Continue and show page"; | ||
continueBtn.addEventListener("click", (e) => { | |||
screen.remove(); | |||
}); | |||
buttons.appendChild(continueBtn); | buttons.appendChild(continueBtn); | ||
Revision as of 19:28, 3 February 2025
/* Finds elements by a selector and executes a function for each element */ function findAndExecute(selector, callback) { const elements = document.querySelectorAll(selector); elements.forEach((element) => { try { callback(element); } catch (e) { console.error(`Error while initializing "${selector}"`, e); } }); } /* Spoiler warning screen */ window.rgwiki_main_spoilerWarningScreenShown = false; findAndExecute(".rgwiki-main-show-spoiler-warning-screen", (trigger) => { if (window.rgwiki_main_spoilerWarningScreenShown) { return; } let screen = document.createElement("div"); screen.classList.add("rgwiki-main-spoiler-warning-screen"); let header = document.createElement("h1"); header.innerText = "Spoiler warning!"; screen.appendChild(header); let description = document.createElement("p"); description.innerHTML = trigger.innerHTML; screen.appendChild(description); let buttons = document.createElement("div"); let backBtn = document.createElement("button"); backBtn.innerText = "Go back"; backBtn.addEventListener("click", (e) => { window.history.back(); }); buttons.appendChild(backBtn); let continueBtn = document.createElement("button"); continueBtn.innerText = "Continue and show page"; continueBtn.addEventListener("click", (e) => { screen.remove(); }); buttons.appendChild(continueBtn); screen.appendChild(buttons); document.body.appendChild(screen); window.rgwiki_main_spoilerWarningScreenShown = true; });