미디어위키:Common.js

광주문화예술인문스토리플랫폼
서소리 (토론 | 기여)님의 2025년 11월 26일 (수) 17:21 판
이동: 둘러보기, 검색

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: 메뉴 → 설정(맥의 경우 오페라 → 환경 설정)으로 이동한 다음 개인 정보 보호 및 보안 → 검색 데이터 지우기 → 캐시한 영상 및 파일을 누름.
/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */
mw.hook('wikipage.content').add(function ($content) {
    // 보기(view) 화면에서만 동작하게 (편집창 등에서는 스킵)
    if (mw.config.get('wgAction') !== 'view') {
        return;
    }

    // content 안에서 myInput 요소 찾기
    var input = document.getElementById('myInput');
    if (!input) {
        return;
    }

    // divTable / tbody / row 찾기
    var tbody = document.querySelector('.divTable .tbody');
    if (!tbody) {
        return;
    }

    var rows = tbody.getElementsByClassName('row');
    if (!rows.length) {
        return;
    }

    // 실제 필터 함수
    function filterEpisodes() {
        // contenteditable div에서 텍스트 읽기
        var text = input.textContent || input.innerText || '';
        var filter = text.trim().toUpperCase();

        // 400행이라도 이 정도 루프는 부담 없음
        for (var i = 0; i < rows.length; i++) {
            var rowText = rows[i].textContent || rows[i].innerText || '';
            if (!filter || rowText.toUpperCase().indexOf(filter) > -1) {
                rows[i].style.display = '';   // 보이기
            } else {
                rows[i].style.display = 'none'; // 숨기기
            }
        }
    }

    // 타이핑할 때마다 필터 적용
    input.addEventListener('input', filterEpisodes);
    input.addEventListener('keyup', filterEpisodes);
});