Electron: удалить прослушиватели событий перед загрузкой - PullRequest
1 голос
/ 17 июня 2020

У меня есть электронное приложение, которое используется для отображения веб-страниц, над которыми я не могу контролировать.
Приложение используется таким образом, что разные страницы могут отображаться каждые несколько секунд.
Одна из показанных страниц прикрепляет Например, слушатель 'beforeunload'

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

Это приводит к сбою электрона при загрузке нового URL-адреса, поэтому переключение больше не работает.
Это известная проблема: https://github.com/electron/electron/issues/9966
Что еще хуже, это также предотвращает закрытие всего приложения.

Есть ли что-нибудь, что можно сделать из основного процесса, что удаляет / отключает прослушиватель beforeunload, чтобы переключение работало снова?
Чтобы проверить это, у меня есть скрипка, которая показывает такое поведение:
https://gist.github.com/9a8acc3bf5dface09d46aae36807f6f9

1 Ответ

1 голос
/ 17 июня 2020

Вы можете просто предотвратить это событие:

const { BrowserWindow, dialog } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })

win.webContents.on('will-prevent-unload', (event) => {
  event.preventDefault()
})

Подробнее см. Electron docs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...