如何创建模态窗口并从渲染过程加载HTML?

时间:2017-03-20 10:13:14

标签: modal-dialog electron

这是我目前的项目结构:

main.js
index.html
download.html
src/index.js
src/style.css

main.js将创建一个BrowserWindow并加载index.html,其中会加载index.jsstyle.css

我想创建一个新的模态窗口,并在download.html中点击按钮时加载index.html

这是我index.js的代码:

btn.onclick = function() {
  let win = new remote.BrowserWindow({
    parent: remote.getCurrentWindow(),
    modal: true
  })
  win.loadURL(`file://${__dirname}/download.html`)
}

但它正在加载file://download.html,在渲染过程中不存在__dirname吗?

2 个答案:

答案 0 :(得分:10)

刚刚测试了此代码(如下),它可以正常运行。目录结构是:

  

main.js
  app(目录)
  --- index.html
  --- app.js(以下代码存在)
  --- modal.html

您如何访问remote

"use strict";

const { remote } = require('electron');


function openModal() {
  let win = new remote.BrowserWindow({
    parent: remote.getCurrentWindow(),
    modal: true
  })

  var theUrl = 'file://' + __dirname + '/modal.html'
  console.log('url', theUrl);

  win.loadURL(theUrl);
}

答案 1 :(得分:1)

使用__dirname将提供当前文件的目录。在主要过程中,它将根据文件系统。在渲染器过程中,它将位于浏览器的上下文中,并基于访问过的uri。

您可能希望改为使用app.getAppPathapp.getPath(name)