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
相关产品推荐
相关产品推荐

