「MediaWiki:Common.js」の版間の差分

提供: 小樽のじかん事典
編集の要約なし
編集の要約なし
1行目: 1行目:
/**
/**
  * アカウント作成画面 強制書き換えスクリプト
  * MediaWiki 1.44.3 アカウント作成画面 最終強制書き換えスクリプト
  * キャッシュを突き破るために、あらゆるタイミングで実行します。
  * 画面の動的更新(OOUI)を監視し、常に指定のラベルと属性を維持します。
  */
  */
(function() {
(function() {
     var runCustomization = function() {
    // 処理対象の関数定義
         if (mw.config.get('wgCanonicalSpecialPageName') === 'CreateAccount') {
     var enforceCustomization = function() {
             // 1. メールアドレスのラベル変更
         if (mw.config.get('wgCanonicalSpecialPageName') !== 'CreateAccount') {
            var labels = document.getElementsByTagName('label');
             return;
            for (var i = 0; i < labels.length; i++) {
        }
                if (labels[i].getAttribute('for') === 'wpEmail' || labels[i].innerHTML.indexOf('メールアドレス') !== -1) {
 
                    labels[i].innerHTML = 'メールアドレス';
        // 1. ラベルの置換(メールアドレス)
                }
        var labels = document.getElementsByTagName('label');
                if (labels[i].getAttribute('for') === 'wpRealName' || labels[i].innerHTML.indexOf('本名') !== -1) {
        for (var i = 0; i < labels.length; i++) {
                    labels[i].innerHTML = 'HN(省略可能)';
            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');
        // 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行目:
     };
     };


     // 読み込み時、1秒後、3秒後にしつこく実行
     // 実行タイミングの制御
     runCustomization();
     if (mw.config.get('wgCanonicalSpecialPageName') === 'CreateAccount') {
    window.addEventListener('load', runCustomization);
        // 初回実行
    setTimeout(runCustomization, 1000);
        enforceCustomization();
     setTimeout(runCustomization, 3000);
 
        // ページ全体を監視し、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);
    }
})();