How to add search in bookmarks in PDF.js

Question:

How to add search in bookmarks in PDF.js

Answer:

Add this code to viewer.html inside this div

<div class="splitToolbarButton toggled">
<input type="search" style="width: 100%;" value='' placeholder="Find in bookmraks" class="toolbarField" onkeyup="filterBookmarks(this.value)"/>

Then add this javascript code to the end of viewer.html

    <script>
      function filterBookmarks(searchText){
        var found = new Array();
        var bookMarks = document.getElementsByClassName('outlineItem');
        if(searchText.trim() != ''){
          // var bookMarks = document.getElementById("outlineView");
          
          for(var i=0;i < bookMarks.length; i++){
            var text = bookMarks[i].firstChild.innerText;
            if(text.includes(searchText)){
              found.push(bookMarks[i]);
              bookMarks[i].style.display = "block";
              // console.log('bookMarks: ', bookMarks[i]);
            }else{
              bookMarks[i].style.display = "none";
            }
          }
        }
        // display all text
        if(searchText.trim() == '' || found.length == 0)
        for(var i=0;i < bookMarks.length; i++){
          bookMarks[i].style.display = "block";
        }
      }
  </script> 
Scroll to Top