我如何从电子中的主进程访问BrowserWindow JavaScript全局
How can I access the BrowserWindow JavaScript global from the main process in Electron?
我想要一个在主进程中定义的菜单,以调用Atom或Electron应用程序中当前浏览器窗口内的JavaScript代码。
从浏览器窗口获取主进程全局变量
const remote = require('remote')
const foo = remote.getGlobal('foo')
什么是等效的主进程(AKA获取当前窗口全局变量)?这就是我在伪代码
中要做的// JavaScript inside the main process
const BrowserWindow = require('browser-window')
//...
// Inside the menu callback
let window = BrowserWindow.getFocusedWindow()
let commander = window.global('commander') /// <---- Pseudocode!!!
commander.handleCommand('File.Save')
这里是你对API中webContents过程的评论的参考,在"注:"在遥控器。
然而,如果你只是想触发一个函数,你也可以使用webcontent .send()和ipc(主进程)进程来触发相应的代码运行。像这样…
// JavaScript inside the main process
const window = require('electron').BrowserWindow;
ipc.on('menuItem-selected', function(){
let focusedWindow = window.getFocusedWindow();
focusedWindow.webContents.send('file-save');
});
// Inside the menu callback
require('ipc').on('file-save', function() {
// File save function call here
});
对于电子版本0.35.0及以上,ipc API更改如下:
// In main process.
const ipcMain = require('electron').ipcMain;
// In renderer process (web page).
const ipcRenderer = require('electron').ipcRenderer;
电子版本11.x。你可以这样做
// In renderer process
const { ipcRenderer } = window.require("electron");
ipcRenderer.on("your-event-here", () => {
//hand your event here
});
//In the main process
import { ipcMain } from "electron";
ipcMain.handle("handle-event-here", async (event, data) => {
// write custom code here
});
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 使用gulp和browserfy从脚本文件进程访问Jquery库
- 从生成的进程访问 Sails 控制器
- NodeJs,500无法在进程中的获取访问令牌(错误:connect ECONNREFUSED)_tickCallbac
- 进程无法访问该文件,因为另一个进程正在使用该文件(删除文件夹)
- 访问节点中长时间运行的进程的grpc流变量
- 从Electron子进程访问DOM树
- 访问多进程Firefox中不支持的内容窗口
- 我如何从电子中的主进程访问BrowserWindow JavaScript全局
- 从grunt模板访问进程/环境