跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Quickpedia wiki
搜尋
搜尋
建立帳號
登入
個人工具
建立帳號
登入
用於已登出編輯者的頁面
了解更多
貢獻
討論
檢視 MediaWiki:Common.js 的原始碼
系統訊息
討論
English
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
←
MediaWiki:Common.js
由於以下原因,您無權編輯此頁面:
本頁用來提供此 Wiki 軟體介面上的文字,並且已被設為保護以防止惡意修改。 如欲增加或修改 Wiki 的翻譯,請至
translatewiki.net
上的 MediaWiki 在地化專案。
您沒有權限來編輯此 JavaScript 頁面,因為這會影響到所有的網站訪客。
您可以檢視並複製此頁面的原始碼。
/** * MediaWiki:Common.js(強化完整版) * 功能: * - 語言切換(簡 / 繁) * - 自動暫存(24小時) * - 深色模式 * - 右上角時鐘 */ mw.loader.using(['mediawiki.util', 'mediawiki.Uri']).then(function () { $(function () { /* ========================= * ① 語言切換(簡 / 繁) * ========================= */ var variants = [ { code: 'zh-tw', label: '繁體' }, { code: 'zh-cn', label: '简体' } ]; var current = mw.config.get('wgUserVariant') || mw.util.getParamValue('variant') || 'zh-tw'; var $langMenu = $('<span>').css({ marginLeft: '10px', fontWeight: 'bold' }); variants.forEach(function (v, i) { var $link = $('<a>') .text(v.label) .css({ cursor: 'pointer', margin: '0 4px', color: v.code === current ? '#000' : '#0645ad', textDecoration: v.code === current ? 'underline' : 'none' }) .on('click', function () { var url = new mw.Uri(window.location.href); url.query.variant = v.code; window.location.href = url.toString(); }); $langMenu.append($link); if (i < variants.length - 1) { $langMenu.append(' / '); } }); mw.util.addPortletLink( 'p-personal', '#', $langMenu.prop('outerHTML'), 'pt-lang-switch', '語言切換' ); /* ========================= * ② 深色模式 * ========================= */ var darkBtn = mw.util.addPortletLink( 'p-personal', '#', '深色模式', 'pt-darkmode' ); $(darkBtn).on('click', function (e) { e.preventDefault(); $('body').toggleClass('dark-mode'); var isDark = $('body').hasClass('dark-mode'); localStorage.setItem('dark-mode', isDark ? '1' : '0'); }); if (localStorage.getItem('dark-mode') === '1') { $('body').addClass('dark-mode'); } /* ========================= * ③ 右上角時鐘 * ========================= */ function updateClock() { var now = new Date(); return now.toLocaleTimeString('zh-TW', { hour12: false }); } var $clock = $('<span>') .attr('id', 'mw-clock') .css({ marginLeft: '10px', fontWeight: 'bold', fontFamily: 'monospace' }) .text(updateClock()); $('#p-personal').append($clock); setInterval(function () { $clock.text(updateClock()); }, 1000); /* ========================= * ④ 自動暫存(24小時) * ========================= */ if (mw.config.get('wgAction') === 'edit') { var interval = 600000; // 10分鐘 var expire = 24 * 60 * 60 * 1000; function getKey() { return 'autosave_' + mw.config.get('wgPageName'); } setInterval(function () { var text = $('#wpTextbox1').val(); if (!text) return; var data = { value: text, time: Date.now() }; localStorage.setItem(getKey(), JSON.stringify(data)); console.log('已自動暫存'); }, interval); var saved = localStorage.getItem(getKey()); if (saved) { try { var data = JSON.parse(saved); if (Date.now() - data.time < expire) { if (!$('#wpTextbox1').val()) { $('#wpTextbox1').val(data.value); console.log('已還原暫存'); } } else { localStorage.removeItem(getKey()); } } catch (e) {} } } /* ========================= * ⑤ 訪客預設語言(不干擾轉換) * ========================= */ var isAnon = mw.config.get('wgUserName') === null; if (isAnon && !mw.util.getParamValue('variant')) { var url = new mw.Uri(window.location.href); url.query.variant = 'zh-tw'; window.location.replace(url.toString()); } }); });
返回到「
MediaWiki:Common.js
」。
切換限制內容寬度