electron v11 用本地html文件 打开新窗口

目标

通过main.js打开主进程窗口,对应index.html,里面有一个按钮【打开新窗口】,按钮绑定的点击事件会打开一个新窗口,里面的内容是newWin.html

环境

在这里插入图片描述

效果

在这里插入图片描述

遇到的坑以及两种解决方案

教学视频里按钮跳转方法是

btn.onclick = ()=>{
         newWin = new BrowserWindow({
             width:500,
             height:500,
         })
         newWin.loadFile('newWin.html')
         newWin.on('close',()=>{win=null})

     }
}
  • 直接写出来报的错:Not allowed to load local resource: file:///E:/Softwares/Learn/Electron/Projects/demo1/newWin.html

  • 解决方案1:webPreferences里要加这个,electron官网里不推荐这么用, 要注意不是加载main.js里的那个new BrowserWindow, 要加在按钮的点击函数里

webPreferences: {
                  webSecurity: false      //不然新打开的remote不能访问本地html
            },

这个是可以的,调试的时候不能只看新开的窗口的,看下主窗口的开发者工具,也就是浏览器的F12

  • 解决方案2:不把webSecurity设置为false:
const path = require('path')  //添加

const btn = this.document.querySelector('#btn')
const remote = require('electron').remote;
const BrowserWindow = remote.BrowserWindow;

window.onload = function () {
    btn.onclick = () => {
        newWin = new BrowserWindow({
            width: 500,
            height: 500,
            webPreferences: {
                nodeIntegration: true,
                enableRemoteModule: true, 
                //  webSecurity: false   //注释掉
            },
        })

        //使用path.resolve方法
        var viewPath = path.resolve('./render/','newWin.html');
        newWin.loadFile(viewPath);
        console.log(newWin)

        // newWin.loadFile("./render/newWin.html")

        newWin.on('close', () => {
            newWin = null
        })
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值