Electron应用程序框架是否具有内置文本搜索功能?
quick-start application并未提供任何明显的搜索功能(例如,使用Ctrl-F
或菜单选项)。我原本预计这会是BrowserWindow选项(或其WebContents的选项),但我在文档中看不到任何有用的内容。
答案 0 :(得分:3)
尝试在最新版本中添加webContents.findInPage。
答案 1 :(得分:0)
我知道这是一个旧线程,但可能仍然与那里的人们有关。 遇到相同的问题,并且首先使用electron-in-page-search进行了修复,但是该组件无法在Electron 2或更高版本上正常使用。
然后终于发现electron-find解决了我的问题。与Electron 4一起使用。
您只需将组件添加到您的项目中即可:
npm install electron-find --save
在Electron主进程中添加全局快捷方式,以ctrl + f的形式将事件发送到渲染器:
globalShortcut.register('CommandOrControl+F', () => {
window.webContents.send('on-find');
});
然后您可以将其添加到页面(渲染过程)
const remote = require('electron').remote;
const FindInPage = require('electron-find').FindInPage;
let findInPage = new FindInPage(remote.getCurrentWebContents());
ipcRenderer.on('on-find', (e, args) => {
findInPage.openFindWindow()
})
希望有帮助。
答案 2 :(得分:0)
Robson Hermes提供的解决方案存在问题。根据定义,cat Africanfile
cat Europeanfile
是全局的,因此即使应用程序未聚焦,其快捷方式也会被检测到。这将导致Ctrl + F快捷方式从其他任何地方“被盗”。
我没有找到理想的解决方案(请参见电子仓库中的this issue),但是可以通过执行罗布森所说的并添加
globalShortcut
请注意,如here所示,这并不理想,可能会导致多个问题:
- 当您失去焦点时,其他应用程序可以锁定该快捷方式,即,稍后您切换回该应用程序时,该快捷方式将神奇地停止工作。
- 某些应用程序可能会在没有聚焦的情况下出现在屏幕上(我认为聚光灯具有这种行为),并且在应用程序出现期间,快捷方式仍会被您的应用程序捕获。
- 在一千种情况下,还会有一些奇怪的情况,您会以某种方式切换焦点并且快捷方式不会被删除。