MediaWiki:Common.js
提供: 小樽のじかん事典
注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
- Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
- Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
- Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください。
/**
* アカウント作成画面のラベル強制書き換えおよびバリデーション
* MediaWiki 1.44.3 対応版
*/
(function() {
// アカウント作成画面(Special:CreateAccount)でのみ実行
if (mw.config.get('wgCanonicalSpecialPageName') === 'CreateAccount') {
var customizeAccountForm = function() {
// 1. メールアドレスのラベル変更(省略可能を削除)
// 複数のセレクタを用いて、確実に要素を特定します
var $emailLabel = $('label[for="wpEmail"], #mw-createaccount-join-form label:contains("メールアドレス")');
if ($emailLabel.length) {
$emailLabel.text('メールアドレス');
}
// 2. 本名のラベルを「HN(省略可能)」に変更
var $realNameLabel = $('label[for="wpRealName"], #mw-createaccount-join-form label:contains("本名")');
if ($realNameLabel.length) {
$realNameLabel.text('HN(省略可能)');
}
// 3. メールアドレス入力をブラウザレベルで必須にする
var $emailInput = $('#wpEmail');
if ($emailInput.length) {
$emailInput.prop('required', true);
// HTML5のバリデーションを有効化
$emailInput.attr('aria-required', 'true');
}
// 4. アカウント作成ボタンが押された際の最終チェック
var $submitButton = $('#wpCreateaccount');
if ($submitButton.length) {
$submitButton.on('click', function(e) {
if ($emailInput.length && !$emailInput.val()) {
alert('メールアドレスは必須項目です。');
$emailInput.focus();
e.preventDefault();
return false;
}
});
}
};
// DOMの構築を待って実行
$(document).ready(function() {
customizeAccountForm();
// 動的な変更を監視(MutationObserver)
if (window.MutationObserver) {
var observer = new MutationObserver(function() {
customizeAccountForm();
});
observer.observe(document.body, { childList: true, subtree: true });
}
});
// フォールバック:0.5秒後と2秒後にも実行
setTimeout(customizeAccountForm, 500);
setTimeout(customizeAccountForm, 2000);
}
})();