
在 JavaScript 预加载脚本中访问 Electron 的 BrowserWindow 实例
Electron 应用中,预加载脚本可在主进程和渲染进程初始化前执行,提供访问 BrowserWindow 实例的便捷途径。 通过在 webPreferences 属性中指定预加载脚本,即可实现此功能。
以下代码演示如何在预加载脚本中访问 BrowserWindow 实例:
const { BrowserWindow, ipcRenderer } = require('electron');
// 通过 process.type 判断当前执行环境
if (process.type === 'renderer') {
const win = BrowserWindow.getFocusedWindow();
if (!win) return; // 没有焦点窗口则退出
// 使用 win.webContents.postMessage 发送消息到渲染进程
win.webContents.postMessage('custom-message', { data: '示例数据' });
// 使用 ipcRenderer.send 发送 IPC 消息到主进程
ipcRenderer.send('custom-channel', { data: '示例数据' });
}
代码解释:
立即学习“Java免费学习笔记(深入)”;
-
BrowserWindow.getFocusedWindow()获取当前拥有焦点的 BrowserWindow 实例。 -
if (!win) return;处理没有焦点窗口的情况,避免错误。 -
win.webContents.postMessage()向渲染进程发送自定义消息。 -
ipcRenderer.send()发送 IPC 消息到主进程,用于进程间通信。
通过以上方法,预加载脚本即可访问 BrowserWindow 实例并使用其 API 进行操作,实现更灵活的应用控制。 请注意,process.type 的判断确保代码仅在预加载脚本环境中执行。










