我正在使用GitHub的Electron制作我的应用程序。我的index.html有一个名为renderer.js的嵌入式脚本,index.html还动态加载另一个名为module.html的html文件,在module.html中有一个webview。 webview使用预加载器。我试图在renderer.js和preloader.js之间发送ipc消息。
我在发送部分(在renderer.js中)和接收部分(在preloader.js中)有一个console.log。只有发送的console.log工作,我在接收端什么也得不到。 Devtron也没有显示任何内容。我确实为webview和index.html提供了单独的控制台。
preloader.js
window.__devtron = {require: require, process: process}
require('devtron').install();
const { ipcRenderer: ipc } = require('electron');
document.addEventListener('DOMContentLoaded', function(event) {
ipc.on('show-dialog', (event, {type}) => {
console.log('please receive this '+type); //THIS CONSOLE LOG DOES NOT WORK
});
});
renderer.js
window.__devtron = {require: require, process: process}
require('devtron').install();
const { ipcRenderer: ipc, remote } = require('electron');
document.addEventListener('DOMContentLoaded', function(event) {
const webview = document.getElementById('webview');
const btn = document.getElementById('devtools');
const btn2 = document.getElementById('execjs');
btn2.addEventListener('click', () => {
console.log('clicked'); //THIS CONSOLELOG WORKS
ipc.send('show-dialog', {
type: 'info'
});
});
});