电子:如何与浏览器窗口通信?

时间:2016-05-14 08:23:05

标签: javascript electron

在Electron中,我有以下脚本是我的main.js,它是一个恢复窗口并将其聚焦的快捷方式,但是我想将输入聚焦在窗口内。我如何实现这一目标?

main.js

app.on('ready', function(){
  createWindow();
  var ret = globalShortcut.register('Command+Control+Alt+G', function() {
    mainWindow.restore();
    mainWindow.focus();
    $('.js-search').focus();
  });
})

1 个答案:

答案 0 :(得分:5)

在页面焦点上,您可以使用webContents从主进程向渲染器进程发送消息。

页面(渲染器进程)可以侦听该消息,然后聚焦元素本身。

主要流程

globalShortcut.register('Command+Control+Alt+G', function() {

    win.restore();
    win.focus();
    win.webContents.send('focus-element', '.js-search');
});

渲染器处理(页面)

<script>
    const {ipcRenderer} = require('electron');

    ipcRenderer.on('focus-element', (event, selector) => {
        document.querySelector(selector).focus();
    });
</script>