簡體   English   中英

嘗試使用 JavaScript 打開新窗口時出錯

[英]Error while trying to open a new window with JavaScript

我正在使用 JavaScript 創建一個電子,但是當我嘗試創建一個新窗口時,它在頁面底部出現錯誤(單擊鏈接)。 我不知道該怎么做,因為我找不到錯誤。

function createAddWindow() {
  addWindow = new BrowserWindow({
    width: 200,
    height: 200,
    title: 'Administrator Panel'
  });
  addWindow.loadURL(url.format({
    pathname: path.join(__dirname, "addWindow.html"),
    protocol: 'file:',
    slashes: true
  }));
}

const mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
  Menu.setApplicationMenu(mainMenu);
});

const mainMenuTemplate = [
  {
    label: 'File',
    submenu:  [
      {
        label: 'Administrator Panel',
        click() {
          createAddWindow();
        }
      },
      {
        label: 'Exit',
        accelerator: process.platform == 'darwin' ? 'Command + Q' : 'Ctrl + Q',
        click() {
          app.quit();
        }
      }
    ]
  }
];

錯誤

https://hastebin.com/amepavehux.js

有人可以幫忙解決這個問題嗎?

好的,您的問題是您的功能超出了全局范圍。 您可以:A.) 創建一個全局函數或 B.) 刪除不必要的函數並執行如下操作:

 const mainMenu = Menu.buildFromTemplate(mainMenuTemplate); Menu.setApplicationMenu(mainMenu); }); const mainMenuTemplate = [ { label: 'File', submenu: [ { label: 'Administrator Panel', click() { addWindow = new BrowserWindow({ width: 200, height: 200, title: 'Administrator Panel' }); addWindow.loadURL(url.format({ pathname: path.join(__dirname, "addWindow.html"), protocol: 'file:', slashes: true })); } }, { label: 'Exit', accelerator: process.platform == 'darwin' ? 'Command + Q' : 'Ctrl + Q', click() { app.quit(); } } ] } ];

我只是刪除了該函數並將其代碼放在click處理程序中。

如果您決定使用該函數,請在此處閱讀全局變量: https : //electronjs.org/docs/api/remote

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM