Electron中两个渲染器进程之间的通信
Communicating between two renderer processes in Electron
我正在编写一个Eletron程序。在程序中,有一个由主进程(main.js)创建的索引窗口。在这个窗口中有一个文件(图像)列表。当我点击该列表中的一个文件时,我想启动第二个窗口来显示该文件。第二个窗口是由索引窗口的渲染器进程(index.js)启动的。如何在索引窗口的呈现器进程和第二个窗的呈现器过程之间进行通信?
代码:
从main.js:中的主进程创建索引窗口
let win;
function createWindow(){
// Create the browser window.
win = new BrowserWindow({width: 1024, height: 768, minWidth: 800, minHeight: 600, show: false, icon: 'files/images/icon.png'});
win.loadURL(`file://${__dirname}/files/html/index.html`);
win.once('ready-to-show', () => {
win.show()
})
// Emitted when the window is closed.
win.on('closed', () => {
win = null;
});
}
app.on('ready', createWindow);
在index.html index.js(渲染器进程)中启动:
<script src="../javascript/index.js"></script>
在index.js中调用function create_sprite_window()
,它创建一个子窗口:
const fs = require('fs');
const path = require('path');
const {BrowserWindow} = require('electron').remote
let child_windows = [];
function create_child_window(URL, width, height){
let rem_win = require('electron').remote.getCurrentWindow();
let new_win = new BrowserWindow({width: width, height: height, minWidth: 400, minHeight: 300, show: false, parent: rem_win, minimizable: true, maximizable: true, skipTaskbar: true});
child_windows[child_windows.length] = new_win;
console.log(child_windows);
new_win.loadURL(URL);
new_win.once('ready-to-show', () => {
new_win.show()
})
return new_win;
}
function create_sprite_window(){
new_win = create_child_window(`file://${__dirname}/../html/sprite_manager.html`, 800, 400);
}
子窗口存储在数组CCD_ 2中。
然后,是否可以将图像的路径发送到第二窗口,或者,从索引窗口编辑第二窗口的<img>
标签(将第二窗口中<img>
标签的源设置为具有getElementById.src = path;
的图像)?。
我自己找到了答案。为了在第二个渲染器窗口中显示正确的图像,我在包含图像路径的URL中添加了一个GET参数。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- d3中堆栈函数和嵌套函数之间的差异
- JQuery:在页面之间滑动
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 不同进程之间共享Node.js环境
- 在 NodeJs 进程之间使用 npm 缓存
- 服务器端 Ruby 进程和客户端 Javascript 之间的通信
- 什么'这是允许一个节点进程在其自己的模块之间进行通信的最具规模友好的方式
- 过程和过程之间的区别是什么?标准和进程.标准输出与HTTP请求和响应
- node.js中父/子进程之间的顺序通信
- Node.js中两个子进程之间的管道
- Electron中两个渲染器进程之间的通信
- 使用javascript在2个googlechrome进程(选项卡)之间进行通信