MediaWiki:Common.js
来自Fuckrooms Wiki
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
(function() { var importCssDivs = document.querySelectorAll('div.import-css'); importCssDivs.forEach(function(div) { var cssContent = div.textContent || div.innerText; if (cssContent) { var styleTag = document.createElement('style'); styleTag.type = 'text/css'; styleTag.appendChild(document.createTextNode(cssContent)); document.head.appendChild(styleTag); } }); })(); importScript('MediaWiki:Importjs/'+ wgPageName + '.js'); (function(){ if (!document.getElementById('snow-style')) { const style = document.createElement('style'); style.id = 'snow-style'; style.textContent = ` @keyframes snowFall { 0% { transform: translateY(-110px) rotate(0deg); } 100% { transform: translateY(calc(100vh + 130px)) rotate(9000deg); } } .snowflake { position: fixed; top: -130px; z-index: 9999; pointer-events: none; user-select: none; animation-timing-function: linear; } `; document.head.appendChild(style); } function createSnowflake() { const snowflake = document.createElement('div'); snowflake.className = 'snowflake'; const icons = ['🍀','☘️','🍃','🌿']; snowflake.innerHTML = icons[Math.floor(Math.random() * 4)]; const size = Math.random() * 16 + 8; const left = Math.random() * 100; const duration = Math.random() * 8 + 8; snowflake.style.cssText = ` font-size: ${size}px; left: ${left}%; animation: snowFall ${duration}s linear 1; // 移除delay参数 opacity: ${Math.random() * 0.5 + 0.5}; color: hsl(${Math.random() * 360}, 100%, 90%); `; snowflake.addEventListener('animationend', function() { snowflake.remove(); }); document.body.appendChild(snowflake); } let interval = setInterval(createSnowflake, 250); document.addEventListener('visibilitychange', function() { if (document.hidden) { clearInterval(interval); } else { interval = setInterval(createSnowflake, 250); } }); for (let i = 0; i < 10; i++) { createSnowflake(); } })(); importScript('MediaWiki:Importjs/'+ wgPageName + '.js'); /* * Script Name: Template CSS * Author: Fandom Backrooms */ (function () { const eles = document.querySelectorAll('.js-action-play'); eles.forEach(function (e) { const targetId = e.getAttribute('data-media-id'); if (!targetId) { console.error('No data-media-id present on element', e); return; } const target = document.getElementsByClassName('media-id-' + targetId)[0]; if (!target) { console.error('No element found with .media-id-' + targetId, e); return; } e.addEventListener('click', function () { console.log(target); if (target.paused || target.ended) { target.play(); } else { target.pause(); } }); }); })(); mw.loader.load(["mediawiki.util", "mediawiki.Title"]); mw.hook("wikipage.content").add(function () { $("span.import-css").each(function () { mw.util.addCSS($(this).attr("data-css")); }); $(".sitenotice-tab-container").each(function() { var container = $(this); function switchTab(offset) { return function() { var tabs = container.children(".sitenotice-tab").toArray(); var no = Number(container.find(".sitenotice-tab-no")[0].innerText) + offset; var count = tabs.length; if (no < 1) no = count; else if (no > count) no = 1; for (var i = 0; i < count; i++) tabs[i].style.display = (i + 1 == no ? null : "none"); container.find(".sitenotice-tab-no")[0].innerText = no; }; } container.find(".sitenotice-tab-arrow.prev").click(switchTab(-1)); container.find(".sitenotice-tab-arrow.next").click(switchTab(1)); }); }); $.getJSON(mw.util.wikiScript("index"), { title: "MediaWiki:Custom-import-scripts.json", action: "raw" }).done(function (result, status) { if (status != "success" || typeof (result) != "object") return; var scripts = result[mw.config.get("wgPageName")]; if (scripts) { if (typeof (scripts) == "string") scripts = [scripts]; importArticles({ type: "script", articles: scripts }); } });