电子:删除卸载前的事件侦听器



我有一个电子应用程序,用于显示我无法控制的网页。
使用该应用程序,因此每隔几秒钟可以显示不同的页面。
显示的页面之一附加了一个"卸载前"侦听器,如下所示

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

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

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

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

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

有关详细信息,请参阅电子文档