영역의 기능을 유지하면서 텍스트 영역의 검색 결과를 강조 표시하는 바닐라 JS 클래스입니다.
HTML이 아니기 때문에 텍스트 영역의 텍스트 스타일을 지정할 수 없으므로 이 클래스를 사용하여 텍스트 영역의 텍스트를 강조 표시할 수 있습니다. 검색결과 등.
사용법은 매우 간단합니다. 필요한 텍스트 영역에 대한 클래스를 인스턴스화하고 검색 메서드를 호출하여 첫 번째 인수에 전달한 텍스트를 강조 표시합니다. 두 번째 인수는 선택 사항이며 true인 경우 검색 대소문자를 구분하는 부울을 사용합니다. 기본값은 대소문자를 구분하지 않습니다. 마지막 인수는 true인 경우 단어 검색을 수행하는 부울 값도 사용합니다. 그렇지 않으면 단어의 어떤 부분이라도 일치할 수 있는 무료 검색입니다.
프로젝트에 다음 파일을 추가합니다.
let tarea = document . getElementById ( 'txt' ) ;
let hilite = new textHighlight ( tarea ) ;
let searchResult = 'Some Expression' ;
let sens = true ; // Case sensitive. Optional, default: false
let word = true ; // Perform a words only search. Optional, default: false
hilite . search ( searchResult , sens , word ) ;
발견된 항목 수에 액세스하려면 다음을 사용하십시오.
let count = hilite . count ( ) ;
prev 및 next 방법을 사용하여 강조 표시된 결과 사이를 앞뒤로 탐색할 수 있습니다. 이 탐색은 순환적입니다. 즉, 끝에 도달하면 다음 호출이 시작 부분으로 돌아가고 그 반대의 경우도 마찬가지입니다. 아래 예:
let btnPrev = document . getElementById ( 'prev' ) ;
let btnNext = document . getElementById ( 'next' ) ;
btnPrev . addEventListener ( 'click' , hilite . prev ) ;
btnNext . addEventListener ( 'click' , hilite . next ) ;
하이라이트를 지워야 하는 경우에는clear 메소드를 호출하세요.
hilite . clear ( ) ;
범위를 벗어나면 destroy 메소드를 호출하기만 하면 모든 것이 인스턴스화 전과 동일해집니다.
hilite . destroy ( ) ;
이 클래스는 lonekorean의 텍스트 영역 내 하이라이트 JQuery 플러그인에서 영감을 받았습니다. 기본적으로 프로젝트에 비슷한 기능이 필요했지만 단지 그 기능만을 위해 JQuery를 포함하고 싶지 않았으며 충분히 좋은 다른 코드를 찾지 못했습니다.
여기서 주요 목표는 텍스트 영역의 검색 결과에 대한 강조 표시를 제공하는 것이었습니다.
이 클래스는 Chrome 117 및 Firefox 118에서 테스트되었습니다.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.