Events 电子网络视图事件

Events 电子网络视图事件,events,webview,electron,Events,Webview,Electron,我正在用electron编写一个应用程序,遇到了一些问题,如果有人能提供帮助,我将不胜感激 我正在将网络视图导航到src=“about:blank” 然后装上 var urlOptions = { extraHeaders: 'Authorization: Bearer ' + arg.token }; webview.loadURL(arg.viewToLoad, urlOptions); 然后,当触发dom ready事件时,我调用 webview.addEventListener

我正在用electron编写一个应用程序,遇到了一些问题,如果有人能提供帮助,我将不胜感激

我正在将网络视图导航到
src=“about:blank”

然后装上

var urlOptions = {
    extraHeaders: 'Authorization: Bearer ' + arg.token
};
webview.loadURL(arg.viewToLoad, urlOptions);
然后,当触发
dom ready
事件时,我调用

webview.addEventListener('did-finish-load', () => spiner.hide());
我试图在webview加载完成后停止微调器,但是
'did-finish-load'
事件触发两次-这会导致几秒钟的空白页面

有人知道为什么吗


我再次查看了文档,但没有正确解释。是否存在在所有资源下载完毕并准备好显示后触发一次的事件

事件会被触发两次:
'did-finish-load'
事件:加载about:blank时,以及使用
loadURL()

要说服您,请尝试以下方法:

main.js:

const { BrowserWindow} = require('electron')
let win = new BrowserWindow({width: 1450, height: 1200})
win.webContents.on('did-finish-load', () => {
    console.log('finished to load ');
})
win.loadURL(`about:blank`)
然后,您会注意到,
did finish load
已被触发

这就是为什么在代码中会触发两次事件

请注意,这里的重要部分是
webContents
EventEmitter,它是BrowserWindows和WebView的一个属性。我使用BrowserWindow使示例最小化