2016-01-11 2 views
1

У меня есть PDFJS с моей страницей. Я хочу искать с помощью javascript.Поиск по коду на встроенном PDFJS

Он отлично работает для поиска в первый раз. Но затем я пытаюсь выполнить поиск снова с помощью другого ключевого слова, тогда он не выделяет правильное ключевое слово.

Вот что я пробовал:

// search with PDF.js 
    function searchPDF(td_text) 
    { 
     PDFViewerApplication.findBar.open(); 
     PDFViewerApplication.findBar.findField.value = td_text; 
     PDFViewerApplication.findBar.highlightAll.checked= true; 
     PDFViewerApplication.findBar.findNextButton.click(); 
    } 


    function resetPDFSearch() 
    { 
     if(PDFViewerApplication.findBar.findField.value != '') { 
      PDFViewerApplication.findBar.findField.value = ''; 
      PDFViewerApplication.findBar.highlightAll.checked= false; 
      PDFViewerApplication.findController.reset(); 
      PDFViewerApplication.findBar.close(); 
      PDFViewerApplication.findController.matchCount = 0; 
      PDFViewerApplication.findController.updateMatch(); 
     } 
    } 

В приведенной выше функции, когда я звоню searchPDF() первый раз, то ключевое слово подсветка правильно. Но опять же, если я назову ту же функцию с другим ключевым словом, тогда она отображает только выделенное ключевое слово.

Я пытаюсь создать новую функцию resetPDFSearch(), чтобы сбросить все ранее отфильтрованные и выделенные ключевые слова. Но не повезло.

Заранее спасибо.

ответ

1

После такой большой головной боли и мозгового штурма. Я пришел ответить, как показано ниже.

function searchPDF(td_text) 
{ 
    PDFView.findBar.open(); 
    $(PDFView.findBar.findField).val(td_text); 

    var event = document.createEvent('CustomEvent'); 
    event.initCustomEvent('findagain', true, true, { 
     query: td_text, 
     caseSensitive: $("#findMatchCase").prop('checked'), 
     highlightAll: $("#findHighlightAll").prop('checked', true), 
     findPrevious: undefined 
    }); 

    PDFViewerApplication.findBar.dispatchEvent(''); 

    return event; 
} 

Нет необходимости в resetPDFSearch() Функция.

Этот случай для моего сценария. Надеюсь, у вас может быть другой случай. Но да, используя event Я могу искать столько раз, сколько хочу. :)

Может быть полезно кому-то в будущем.

Смежные вопросы