texthighlighter
1.0.0
Vanilla 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 的highlight-within-textarea JQuery 插件。基本上,我的專案需要類似的功能,但不想僅僅為此而包含 JQuery,並且沒有找到任何其他足夠好的此類程式碼。
這裡的主要目的是在文字區域中突出顯示搜尋結果。
該類別在 Chrome 117 和 Firefox 118 中進行了測試。
該專案已獲得 MIT 許可