【问题标题】:Electron webview events电子网络视图事件
【发布时间】:2017-06-07 15:44:02
【问题描述】:

我正在用电子写一个应用程序,遇到了一些问题,如果有人可以提供帮助,不胜感激。

我正在将 web 视图导航到 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' 事件触发了两次 - 这会导致几秒钟的空白页。

有人知道为什么吗?

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

【问题讨论】:

    标签: events webview electron


    【解决方案1】:

    'did-finish-load' 事件被触发 2 次:当您加载 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 和 webviews 的一个属性。我使用 BrowserWindow 来保持示例最小化。

    【讨论】:

      猜你喜欢
      • 2017-09-16
      • 2015-02-16
      • 2018-05-29
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多