NodeJS 如何删除主窗口电子应用程序中的视图子菜单

ztyzrc3y  于 2022-12-03  发布在  Node.js
关注(0)|答案(1)|浏览(86)

bounty将在3天后过期。回答此问题可获得+50的声望奖励。EaBengaluru正在寻找来自知名来源的答案:我需要一个工作代码来删除这3个选项从视图菜单

嗨,我想从电子标题菜单中删除3个选项,它们是
1.再装
1.强制重新加载
1.切换开发人员工具
如下所示

这是我尝试过的

背景.js

import { app, session, protocol, BrowserWindow , dialog, ipcMain, Menu} from 'electron'

      const menu = Menu.getApplicationMenu(); // get default menu
      
      console.log('menu %s',menu.items);
    
    
     let menuIndex = menu.items.findIndex(o => {
          return o.role == 'viewmenu'
      })

    //splice items based on names , i'm not able to do that because i cannot see the full json object and its structure in console.log

   //Menu.setApplicationMenu(menu);   //set menu

我不知道该怎么办
请帮我提前致谢!!

nhaq1z21

nhaq1z211#

您可以使用Menu.buildFromTemplate基于默认值创建一个 new 菜单,并将默认值的菜单项作为模板传递。
然后将其设置为应用程序菜单。在构建过程中,您可以剪切掉您不想要的元素

const menu = Menu.getApplicationMenu(); // get default menu

// build a new menu based on default one
const newmenu = Menu.buildFromTemplate(
  menu.items.map(i => {
    // overwrite viewmenu item
    if (i.role === 'viewmenu') {
      // create new submenu
      const newviewsub = Menu.buildFromTemplate(
        i.submenu.items.slice(4) // cut first 4 item (4th is separator)
      )
      // replace this item's submenu with the news
      return Object.assign({}, i, { submenu: newviewsub })
    }
    // otherwise keep
    return i
  })
)

Menu.setApplicationMenu(newmenu)

您应该会看到“view”菜单的前3个元素消失了

相关问题