javascript - Electron:在 mainWindow 加载时使用 mainWindow.webContents.send

标签 javascript electron

当用户更改主题时,我使用 mainWindow.webContents.send 更改 DOM 中的类。我还将它保存在商店中的关键主题下。

mainWindow.webContents.send('theme:change', theme);
store.set('theme', theme);

然后在renderer.js中:

ipcRenderer.on('theme:change', (event, theme) => {
  document.querySelector('body').className = `${theme}`;
});

这成功地更改了主题并将其保存在商店中。但是,现在我希望在启动应用程序时加载该主题,而不是返回到默认值。为此,在 app.on('ready') 中,我正在这样做:

mainWindow.webContents.send('theme:change', store.get('theme'));

但是,什么也没有发生。好像没发出去我哪里出错了?本质上,需要做的是当应用程序加载到商店中的类时更改 body 中的类。

最佳答案

想通了。我必须输入:

mainWindow.webContents.once('dom-ready', () => {
    mainWindow.webContents.send('theme:change', store.get('theme'));
})

我正在尝试 mainWindow.on('dom-ready') 这就是它不起作用的原因。

关于javascript - Electron:在 mainWindow 加载时使用 mainWindow.webContents.send,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51932846/

相关文章:

shell - Electron:运行带参数的 shell 命令

javascript - 隐藏动态输入框的动态复选框

javascript - Electron "MAIN": requiring you own js file and call function from it

javascript - 为什么 Nodejs usb 模块与 Electron 冲突?

javascript - 如何在 javascript 验证失败时不运行 php 脚本?

image - 无法通过 Electron 应用程序在Discordjs上发送附加到消息的图像

javascript - 从 Electron 应用程序内部使用 Dropbox Chooser

javascript 抛出和捕获错误未显示预期结果

javascript - 访问不同端口时,js 获取失败并显示 net::ERR_SSL_PROTOCOL_ERROR

javascript - 如何将页脚放在 'bottom:0' CSS 下方?