reactjs - 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 进行通信?
任何帮助将不胜感激。
解决方案
如果有人感兴趣,解决方案实际上非常简单:
您需要做的就是在菜单项中添加一个“角色”:
ctxMenu.append(new MenuItem({
label:'Paste',
role:'paste',
click:()=>{console.log('Paste clicked!')}
}))
就是这样,工作。
推荐阅读
- jquery - 获取隐藏字段的值
- postgresql - 为什么插入主键不影响顺序?
- javascript - 使用 ajax 和 javascript 更新 innerHTML 值
- javascript - 即使在剑道网格列中,如何调用按钮单击java脚本模具
- amazon-web-services - kubectl error 访问EKS集群时必须登录服务器(未授权)
- css - 如何在 Angular 应用程序中检查 CSS 加载大小
- android - Google Play 警告:您的应用包含基于文件的 XSS 问题?JavaScript 启用 = 真
- php - 安装我的自定义插件后创建自定义 wordpress 页面
- python - 字符串中的一个热门 - 获取唯一列表中的索引
- abstract-syntax-tree - ASIS中元素的子元素列表(Ada语义接口规范)