「MediaWiki:Common.js」の版間の差分
提供: 小樽のじかん事典
編集の要約なし |
編集の要約なし |
||
| 1行目: | 1行目: | ||
/** | /** | ||
* アカウント作成画面 | * MediaWiki 1.44.3 アカウント作成画面 最終強制書き換えスクリプト | ||
* | * 画面の動的更新(OOUI)を監視し、常に指定のラベルと属性を維持します。 | ||
*/ | */ | ||
(function() { | (function() { | ||
var | // 処理対象の関数定義 | ||
if (mw.config.get('wgCanonicalSpecialPageName') | var enforceCustomization = function() { | ||
// 1. | if (mw.config.get('wgCanonicalSpecialPageName') !== 'CreateAccount') { | ||
return; | |||
} | |||
// 1. ラベルの置換(メールアドレス) | |||
var labels = document.getElementsByTagName('label'); | |||
for (var i = 0; i < labels.length; i++) { | |||
var label = labels[i]; | |||
// メールアドレスラベルの強制書き換え | |||
if (label.innerHTML.indexOf('メールアドレス') !== -1 && label.innerHTML.indexOf('(省略可能)') !== -1) { | |||
label.innerHTML = 'メールアドレス'; | |||
} | |||
// 本名ラベルの強制書き換え | |||
if (label.innerHTML.indexOf('本名') !== -1) { | |||
label.innerHTML = 'HN(省略可能)'; | |||
} | } | ||
} | |||
// 2. 入力項目の強制必須化 | |||
if (emailInput) { | var emailInput = document.getElementById('wpEmail'); | ||
if (emailInput) { | |||
if (!emailInput.required) { | |||
emailInput.required = true; | emailInput.required = true; | ||
emailInput.setAttribute('required', 'required'); | emailInput.setAttribute('required', 'required'); | ||
| 26行目: | 34行目: | ||
}; | }; | ||
// | // 実行タイミングの制御 | ||
if (mw.config.get('wgCanonicalSpecialPageName') === 'CreateAccount') { | |||
// 初回実行 | |||
enforceCustomization(); | |||
// ページ全体を監視し、MediaWikiが後からHTMLを書き換えても即座に再適用する | |||
var observer = new MutationObserver(function(mutations) { | |||
enforceCustomization(); | |||
}); | |||
observer.observe(document.body, { | |||
childList: true, | |||
subtree: true | |||
}); | |||
// 予備の実行(ネットワーク遅延対策) | |||
window.addEventListener('load', enforceCustomization); | |||
setTimeout(enforceCustomization, 1000); | |||
} | |||
})(); | })(); | ||
2025年12月27日 (土) 11:02時点における版
/**
* MediaWiki 1.44.3 アカウント作成画面 最終強制書き換えスクリプト
* 画面の動的更新(OOUI)を監視し、常に指定のラベルと属性を維持します。
*/
(function() {
// 処理対象の関数定義
var enforceCustomization = function() {
if (mw.config.get('wgCanonicalSpecialPageName') !== 'CreateAccount') {
return;
}
// 1. ラベルの置換(メールアドレス)
var labels = document.getElementsByTagName('label');
for (var i = 0; i < labels.length; i++) {
var label = labels[i];
// メールアドレスラベルの強制書き換え
if (label.innerHTML.indexOf('メールアドレス') !== -1 && label.innerHTML.indexOf('(省略可能)') !== -1) {
label.innerHTML = 'メールアドレス';
}
// 本名ラベルの強制書き換え
if (label.innerHTML.indexOf('本名') !== -1) {
label.innerHTML = 'HN(省略可能)';
}
}
// 2. 入力項目の強制必須化
var emailInput = document.getElementById('wpEmail');
if (emailInput) {
if (!emailInput.required) {
emailInput.required = true;
emailInput.setAttribute('required', 'required');
}
}
};
// 実行タイミングの制御
if (mw.config.get('wgCanonicalSpecialPageName') === 'CreateAccount') {
// 初回実行
enforceCustomization();
// ページ全体を監視し、MediaWikiが後からHTMLを書き換えても即座に再適用する
var observer = new MutationObserver(function(mutations) {
enforceCustomization();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// 予備の実行(ネットワーク遅延対策)
window.addEventListener('load', enforceCustomization);
setTimeout(enforceCustomization, 1000);
}
})();