미디어위키:Common.js 문서 원본 보기
←
미디어위키:Common.js
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
이 문서는 이 위키의 소프트웨어 인터페이스에 쓰이는 문서로, 부정 행위를 막기 위해 보호되어 있습니다. 모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인
translatewiki.net
에 참여하시기 바랍니다.
문서의 원본을 보거나 복사할 수 있습니다.
/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */ mw.hook('wikipage.content').add(function ($content) { // 보기 화면에서만 동작 if (mw.config.get('wgAction') !== 'view') { return; } var input = document.getElementById('myInput'); if (!input) { return; } var tbody = document.querySelector('.divTable .tbody'); if (!tbody) { return; } var rows = tbody.getElementsByClassName('row'); if (!rows.length) { return; } // 1) 행 텍스트를 미리 대문자로 캐시 var rowData = []; for (var i = 0; i < rows.length; i++) { var rowText = rows[i].textContent || rows[i].innerText || ''; rowData.push({ row: rows[i], textUpper: rowText.toUpperCase() }); } // 2) 실제 필터 함수 function filterEpisodes() { var text = input.textContent || input.innerText || ''; var filter = text.trim().toUpperCase(); // 검색어가 없으면 전부 보이기 if (!filter) { for (var i = 0; i < rowData.length; i++) { rowData[i].row.style.display = ''; } return; } for (var j = 0; j < rowData.length; j++) { if (rowData[j].textUpper.indexOf(filter) > -1) { rowData[j].row.style.display = ''; } else { rowData[j].row.style.display = 'none'; } } } // 3) 디바운스 헬퍼 (delay ms 동안 입력 멈췄을 때만 실행) function debounce(fn, delay) { var timer = null; return function () { var context = this; var args = arguments; if (timer) { clearTimeout(timer); } timer = setTimeout(function () { fn.apply(context, args); }, delay); }; } var debouncedFilter = debounce(filterEpisodes, 200); // 0.2초 // contenteditable div에서 input 이벤트만 사용해도 충분 input.addEventListener('input', debouncedFilter); });
미디어위키:Common.js
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
한국어
로그인
이름공간
메시지
토론
변수
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의 문서로
Help about MediaWiki
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보