首页 > 解决方案 > Electron:使用上下文菜单粘贴字符串

问题描述

我正在使用 Electron 和 React 构建一些应用程序。我想保留标准的复制粘贴功能,就像在“普通”程序/浏览器中一样。

我在我的电子脚本中添加了这段代码:

app.on('ready', ()=>{
  BrowserWindow.addDevToolsExtension(
    path.join(os.homedir(), '/AppData/Local/Google/Chrome/User Data/Default/Extensions/fmkadmapgofadopljbjfkapdkoienihi/3.6.0_0')
 )
  createWindow();
  const ctxMenu = new Menu();
  ctxMenu.append(new MenuItem({
    label:'Paste',
    click:()=>{console.log('Paste clicked!')}
  }))

  mainWindow.webContents.on('context-menu',(e,params)=>{
    ctxMenu.popup(mainWindow,params.x,params.y)
  })

})

现在,我不知道如何创建粘贴功能。我看到电子有一个“剪贴板”API,但我如何设置特定 HTML 元素(用户想要粘贴到其中)和电子代码之间的连接?

我的应用程序纯粹是基于浏览器的应用程序,这意味着除了 Electron 的标准样板之外,没有 NodeJS 代码。

我是否需要拦截浏览器中的右键单击,然后如何与 Electron 进行通信?

任何帮助将不胜感激。

标签: reactjselectron

解决方案


如果有人感兴趣,解决方案实际上非常简单:

您需要做的就是在菜单项中添加一个“角色”:

 ctxMenu.append(new MenuItem({
    label:'Paste',
    role:'paste',
    click:()=>{console.log('Paste clicked!')}
  }))

就是这样,工作。


推荐阅读