【问题标题】:Electron: remove beforeunload event listenersElectron:删除 beforeunload 事件监听器
【发布时间】:2020-06-17 18:35:01
【问题描述】:

我有一个电子应用程序,用于显示我无法控制的网页。
使用该应用程序后,每隔几秒就会显示一个不同的页面。
显示的页面之一像这样附加了一个“beforeunload”侦听器

    window.addEventListener('beforeunload', function(event) {
    event.returnValue="test";
});

这会导致 electron 在加载新 url 时失败,因此切换不再起作用。
这是一个已知问题:https://github.com/electron/electron/issues/9966
更糟糕的是,还会阻止整个应用程序被关闭。

有什么可以从删除/禁用 beforeunload 侦听器的主进程中执行的操作,以便再次进行切换?
为了测试这一点,我有一个显示这种行为的小提琴:
https://gist.github.com/9a8acc3bf5dface09d46aae36807f6f9

【问题讨论】:

    标签: electron


    【解决方案1】:

    您可以简单地阻止此事件:

    const { BrowserWindow, dialog } = require('electron')
    const win = new BrowserWindow({ width: 800, height: 600 })
    
    win.webContents.on('will-prevent-unload', (event) => {
      event.preventDefault()
    })
    

    详情请参阅 Electron docs

    【讨论】:

    • 你说的完全正确,谢谢!不知怎的,我错过了……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多