我正在写一个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);
}子窗口存储在数组child_windows中。
然后是否可以将图像的路径发送到第二个窗口,或者从索引窗口编辑第二个窗口的<img>标记(将第二个窗口中的<img>标记的源设置为带有getElementById.src = path;的图像)?
发布于 2016-08-03 12:15:08
我自己找到了答案。为了在第二个呈现器窗口中显示正确的图像,我在包含图像路径的URL中添加了一个GET参数。
https://stackoverflow.com/questions/38732244
复制相似问题