将文本粘贴到电子网页中嵌入的网页的输入框中

时间:2018-04-10 01:16:47

标签: javascript electron

我想在电子版webview中嵌入的网页的输入框中粘贴带有快捷方式的文本(例如,CMD + V)。 在开发模式下,粘贴文本无需任何实现即可工作。但在使用electron-packager打包应用程序后,粘贴功能无效。我对此没有任何线索。

如果您想查看代码,请查看此存储库:https://github.com/junghyun87/dictionary-in-tray

1 个答案:

答案 0 :(得分:1)

我从您的存储库中获取了代码,并在使用打包的应用程序时在macOS上遇到了同样的问题。

为了启用键盘快捷键,包括剪切,复制,粘贴的快捷键,它们仍然必须在菜单项中定义,即使菜单栏是隐藏的,这通常是托盘应用程序的情况。

由于某种原因,似乎打包的应用程序不包含通常的标准菜单项和相关的快捷方式。

我已经能够通过在createMenu()中添加定义基本菜单的main.js函数来恢复所需的行为:

app.on('ready', () => {
  createTray();
  createWindow();
  createMenu();
});

const createMenu = () => {
  const { Menu } = require('electron');
  let menuTemplate =
  [
    {
      label: app.getName(),
      submenu: [
        {role: 'quit'}
      ]
    },
    {
      label: 'Edit',
      submenu: [
        {role: 'undo'},
        {role: 'redo'},
        {role: 'cut'},
        {role: 'copy'},
        {role: 'paste'},
        {role: 'selectall'}
      ]
    }
  ];
  Menu.setApplicationMenu (Menu.buildFromTemplate (menuTemplate));
};

... HTH