在嵌入式 pe:documentViewer 上使用 javascript 进行搜索

Search using javascript on Embedded pe:documentViewer

我有一个 Web 应用程序,它使用 primefaces 扩展中的 documentViewer 来查看 pdf 文件。

我需要使用 javascript 将查询传递给 phraseSearch,以便在找到我的查询的正确位置打开 pdf 文件。
我将在我用来打开 documentViewer 的按钮的 oncomplete 属性中使用此 javascript (pdfQuery):

<p:commandButton action="#{searchController.openPDF}" 
oncomplete="PF('pdf_dlg').show();pdfQuery('Framework')" 
value="open PDF" update="pdf" />

<p:dialog header="#{searchController.pdfTitle}"
  widgetVar="pdf_dlg" 
responsive="true" dynamic="true" >
    <h:form id="pdf">
        <pe:documentViewer value="#{pdfBean.tempPdfFile}"/>
    </h:form>
</p:dialog>

我在 SO 上发现了与 PDF.js 但与 primefaces 扩展无关的类似问题:

有什么办法可以实现吗?
如何访问嵌入的 primefaces pdf.js?
非常感谢。

编辑:
现在我被困在这里。这段javascript不行:

function triggerSearch(tx_query) {
    $('iframe').on('load',
         function () {
            if (typeof PDFViewerApplication.findController !== 'undefined') {
               PDFViewerApplication.findController.executeCommand('find', {
                  query: tx_query,
                  caseSensitive: false,
                  highlightAll: true,
                  findPrevious: true
              });
         }
    });
}

不幸的是,pdf.viewer.js 中的方法 PDFViewerApplication 未被识别。我不知道如何访问它。

在此处导航到“展示”页面: https://www.primefaces.org/showcase-ext/sections/documentviewer/advanced.jsf

现在使用 Chrome 的 F12 或您喜欢的浏览器打开控制台 window。 输入以下代码:

window.frames[0].PDFViewerApplication.findBar.open();

注意到 FindBar 打开了吗?因此,现在您可以通过访问 PDFViewerApplication 来编写完全符合您要求的脚本。

var pdfViewer = window.frames[0].PDFViewerApplication;
pdfViewer.findBar.open();
pdfViewer.findBar.findField.value = "My text";
pdfViewer.findBar.highlightAll.checked= true;
pdfViewer.findBar.findNextButton.click();