You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PDF.js v4默认打开查找栏:旧版本代码如何适配新版本?

在pdfjs-4.0.379中实现URL哈希触发查找并打开查找栏

pdfjs v4版本对查找模块做了重构,原v2的findBar被整合到findController中,以下是适配后的实现代码:

key: "setHash",
value: function setHash(hash) {
  let pageNumber, dest;

  if (hash.includes("=")) {
    // 解析哈希参数,也可以用URLSearchParams替代内置方法
    const params = new URLSearchParams(hash.slice(1)); // 去掉哈希开头的#
    
    if (params.has("search")) {
      const query = params.get("search").replace(/"/g, "");
      const phraseSearch = params.get("phrase") === "true";
      
      // 获取v4中的查找控制器
      const findController = PDFViewerApplication.findController;
      
      // 打开查找栏
      findController.open();
      
      // 设置查找输入框内容
      findController.findField.value = query;
      
      // 配置查找选项
      const findOptions = {
        query,
        phraseSearch,
        highlightAll: true, // 开启全局高亮
        caseSensitive: false, // 根据需求调整大小写敏感
        entireWord: false, // 根据需求调整全词匹配
      };
      
      // 执行查找命令
      findController.executeCommand("find", findOptions);
    }
  }

  // 保留原有的页面跳转、目标定位逻辑
  ...
}

关键变化说明

  • 移除了对PDFViewerApplication.findBar的直接访问,改用PDFViewerApplication.findController作为查找功能的入口
  • 打开查找栏的方法从findBar.open()改为findController.open()
  • 执行查找不再需要模拟点击按钮,直接调用findController.executeCommand("find", options)即可完成查找和高亮
  • 哈希解析可以用原生URLSearchParams替代旧版的parseQueryString,兼容性更好

内容的提问来源于stack exchange,提问作者Juan Alvarez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:53:22