【问题标题】:Error while trying to open a new window with JavaScript尝试使用 JavaScript 打开新窗口时出错
【发布时间】:2018-07-27 20:48:09
【问题描述】:

我正在使用 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

有人可以帮忙吗?

【问题讨论】:

  • 你能把完整的代码放在pastebin上让我看到吗?
  • @steve 是的,一分钟
  • @steve 问题已更新
  • 我会尽快提供解决方案
  • 希望有帮助。我测试过,它有效

标签: javascript html node.js electron


【解决方案1】:

好的,您的问题是您的函数超出了全局范围。您可以: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

【讨论】:

  • 感谢您这样做,但我也发现了错误并在不执行您所做的情况下修复了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
相关资源
最近更新 更多