Как я могу закрыть все уведомления о странице перед ее выгрузкой (без использования Window # onunload)?

У меня есть страница, которая уведомляет пользователя об обновлениях сервера, используя window.webkitNotifications.

Это не расширение Google Chrome.

Я хочу закрыть все уведомления по страницам до выгрузки страницы. Я пытаюсь сделать это с помощью:

var notifications = new Array();

// ...
var popup = window.webkitNotifications.createNotification(...);
// ...
notifications.push(popup);

// ...
function closeAll(){
  for (notification in notifications) {
    notifications[notification].cancel();
  }
}

//...
$(window).unload(function() {
  closeAll();
});

Но уведомления не закрываются при перезагрузке страницы. Я нашел эту проблему в проекте Chromium: https://code.google.com/p/chromium/issues/detail?id=40262

Как я могу гарантировать, что уведомления по страницам будут закрыты без использования окна # onunload?

Ответ 1

Интересно, можете ли вы добавить javascript в всплывающее окно уведомления и установить с помощью фактического всплывающего окна, таким образом он в конце концов закроется.

Мне нужно попробовать и проверить это.

Ответ 2

Используйте это:)

$(window).on('beforeunload', function() {
    closeAll();
});

Ответ 3

Используйте beforeunload событие вместо unload.