MediaWiki:Common.js

提供: 小樽のじかん事典
2025年12月27日 (土) 11:13時点における管理人 (トーク | 投稿記録)による版

注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。

  • 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 アカウント作成画面 最終物理解決(JS版)
 */
(function() {
    var enforce = function() {
        if (mw.config.get('wgCanonicalSpecialPageName') !== 'CreateAccount') return;

        // 1. ラベルの書き換え
        var labels = document.getElementsByTagName('label');
        for (var i = 0; i < labels.length; i++) {
            if (labels[i].innerHTML.indexOf('メールアドレス') !== -1) {
                labels[i].innerHTML = 'メールアドレス';
            }
            if (labels[i].innerHTML.indexOf('本名') !== -1) {
                labels[i].innerHTML = 'HN(省略可能)';
            }
        }

        // 2. メールアドレス必須化(属性付与)
        var emailInput = document.getElementById('wpEmail');
        if (emailInput) {
            emailInput.required = true;
            emailInput.setAttribute('required', 'required');
        }
    };

    // 実行と監視
    if (mw.config.get('wgCanonicalSpecialPageName') === 'CreateAccount') {
        enforce();
        // 画面の変化を常に監視して、上書きを許さない
        var observer = new MutationObserver(enforce);
        observer.observe(document.body, {childList: true, subtree: true});
        
        // 送信ボタンクリック時にも強制チェック
        $(document).on('click', '#wpCreateaccount', function(e) {
            var email = document.getElementById('wpEmail');
            if (email && !email.value) {
                alert('メールアドレスは必須項目です。');
                email.focus();
                e.preventDefault();
                return false;
            }
        });
    }
})();