如何更改 Electron 中使用的 html 文件?

Posted

技术标签:

【中文标题】如何更改 Electron 中使用的 html 文件?【英文标题】:How to change the used html file in Electron? 【发布时间】:2021-12-01 23:01:01 【问题描述】:

我正在尝试更改 Electron 应用程序中使用的 html 文件。我在 *** 上尝试了几个建议,但我无法实现任何目标。我的代码如下:

main.js:

<!DOCTYPE html>
<html>
    <head>
        <script src="renderer.js"></script>
    </head>
    <body>
        <h1>One</h1>
        <button id="change">Change</button>
    </body>
</html>

新的.html:

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <h1>Two</h1>
    </body>
</html>

main.js:

const  app, BrowserWindow  = require('electron')
const path = require('path')

function createWindow ()   // Create the browser window.  
    const mainWindow = new BrowserWindow(    width: 800,    height: 600 )
    mainWindow.loadFile('index.html')
    mainWindow.openDevTools();


app.whenReady().then(() =>   
    createWindow()
    app.on('activate', function ()      
        if (BrowserWindow.getAllWindows().length === 0) createWindow()  
    )
)

renderer.js:

const BrowserWindow = require('electron').remote
const path = require('path')

const newWindowBtn = document.getElementById('change')

newWindowBtn.addEventListener('click', (event) => 
  let win = new BrowserWindow( width: 400, height: 320 )

  win.on('close', () =>  win = null )
  win.loadFile("new.html");
)

单击 index.html 中的按钮后,我正在尝试将 html 文件更改为 new.html。

【问题讨论】:

您在渲染器进程中创建了一个 BrowserWindow,但它不应该是。您的 BrowserWindow 已经存在(您已经在 main.js 中创建了它)。因此,请在您的 main.js 中保留对它的引用,然后从您的 Button 单击处理程序向主程序发送一条 IpcRenderer 消息,主程序将在此消息上使用处理程序进行侦听。最终在这个处理程序中使用新的 html 文件加载您已经存在的 BrowserWindow。 只需使用基本链接:&lt;a href="new.html"&gt;Change&lt;/a&gt; 感谢您的回答! 【参考方案1】:

您可以在此功能中使用location.href='new.html'在一个窗口中切换页面。

【讨论】:

以上是关于如何更改 Electron 中使用的 html 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 package.json 脚本同时使用 webpack 监视我的 .ts 文件的更改并运行 Electron?

如何根据 Electron 菜单单击更改 Redux 状态?

如何更改文本区域中一行用户输入的背景颜色?

怎么给electron应用程序更换图标

更改文本区域 jquery 内的 html 标记之间的文本

Electron 环境变量