참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.
- 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
- 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
- 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
- 오페라: Ctrl-F5를 입력.
/* MediaWiki:Common.js */
mw.hook('wikipage.content').add(function ($content) {
$content.find('[class*="mw-customtoggle-"]').each(function () {
var $toggle = $(this);
var classList = ($toggle.attr('class') || '').split(/\s+/);
classList.forEach(function (cls) {
if (cls.indexOf('mw-customtoggle-') !== 0) {
return;
}
var suffix = cls.replace('mw-customtoggle-', '');
var targetId = 'mw-customcollapsible-' + suffix;
/*
* #id를 사용하지 않는 이유:
* 현재 문서에 같은 id가 2개 존재하므로
* 실제 접히는 영역을 정확히 찾아야 함.
*/
var $targets = $content.find('[id="' + targetId + '"]');
// 실제 내용이 들어 있는 collapsible 영역 선택
var $target = $targets.filter(function () {
return $(this).find('table').length > 0 ||
$(this).hasClass('mw-collapsed') ||
$(this).css('display') === 'none';
}).first();
if (!$target.length) {
return;
}
$toggle
.off('click.smoothSlide')
.on('click.smoothSlide', function (e) {
/*
* MediaWiki 기본 mw-collapsible 핸들러와
* slideToggle이 동시에 실행되는 것을 방지
*/
e.preventDefault();
e.stopImmediatePropagation();
var $contentTarget = $target.children('.mw-collapsible-content');
var $animTarget = $contentTarget.length
? $contentTarget
: $target;
var isOpening = !$animTarget.is(':visible');
$animTarget
.stop(true, true)
.slideToggle(200, function () {
if ($(this).is(':visible')) {
/*
* slideToggle이 남기는 height, padding 등의
* 임시 스타일 정리.
*
* display는 현재 구조에서는 지우지 않는 편이 안전함.
*/
$(this).css({
height: '',
overflow: '',
paddingTop: '',
paddingBottom: '',
marginTop: '',
marginBottom: ''
});
}
});
// 접근성 상태도 같이 갱신
$('[class~="' + cls + '"]').attr(
'aria-expanded',
isOpening ? 'true' : 'false'
);
});
});
});
});