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

MediaWiki:Common.js」の保護を解除しました
折り畳みボックス用JS関数を作成
283行目: 283行目:
}
}
});
});
/* 折り畳みボックス用のJS */
(function() {
    // ページが完全に読み込まれた後に実行されるようにする
    document.addEventListener('DOMContentLoaded', function() {
        // 'custom-template-expandable-box' クラスを持つ要素をすべて取得
        var expandableBoxes = document.querySelectorAll('.custom-template-expandable-box');
        expandableBoxes.forEach(function(box) {
            var header = box.querySelector('.custom-template-expandable-box-header');
            var contents = box.querySelector('.custom-template-expandable-box-contents');
            var toggleLabel = box.querySelector('.custom-template-expandable-box-toggle-label');
            // contents と toggleLabel が存在するか確認
            if (!contents || !toggleLabel) {
                return; // 必要な要素がなければスキップ
            }
            // `opened` パラメータの状態を読み取る
            var isOpenedInitially = box.getAttribute('data-opened') === 'True';
            // 初期状態の設定
            if (isOpenedInitially) {
                contents.style.display = 'block';
                toggleLabel.textContent = '[非表示]';
            } else {
                contents.style.display = 'none';
                toggleLabel.textContent = '[表示]';
            }
            // ヘッダーがクリックされたときのイベントリスナーを設定
            if (header) {
                header.addEventListener('click', function() {
                    if (contents.style.display === 'none') {
                        // 非表示なら表示にする
                        contents.style.display = 'block'; // または 'initial'
                        toggleLabel.textContent = '[非表示]';
                    } else {
                        // 表示なら非表示にする
                        contents.style.display = 'none';
                        toggleLabel.textContent = '[表示]';
                    }
                });
            }
        });
    });
})();