1
我想建立一個電子應用程序,其中多個窗口將從一個URL池中加載URL,並使用ipcRender發回信息。電子多窗口通信
我的設計看起來是這樣的:
main.js:
function foo(){
var urls = [ urls ....]
for(var i = 0; i < 3; i++){
var window = new BrowserWindow({
webPreferences: {
preload: "preload.js"
}
})
window.webContents.on("did-finish-load"), function(){
window.webcontents.executeJavascript("helloWorld()")
console.log(i)
}
// Omitted some checks
window.load(urls.shift())
}
ipc.on('helloworld', function(event, data){
console.log(data)
if (urls.length >= 1){
event.returnValue = urls.shift();
} else {
event.returnValue = 'done'
}
})
}
app.on('ready', foo)
preload.js
helloWorld = function(){
var result = ipc.sendSync('helloWorld', 'hey there')
if (result != done){
window.location = result;
}
}
輸出: 2hey有 2hey有 2hey有 。 ...
當前代碼的工作類型:它在頁面加載完成後一直加載url並執行helloWorld函數,並且我能夠從ipcMain獲取數據。
然而,只有1 3窗口正在做這件事,而不是我的3個窗口類的異步工作的期望。其他兩個窗口只是加載第一個網站,並沒有做任何其他事情。
爲什麼會發生這種情況,應該採取什麼措施來實現這一目標?
謝謝!
非常感謝! – user1948847