window.addEventListener не работает при нажатии пользователем кнопки браузера назад в Polymer 2.0?

window.addEventListener('popstate', function(event) {
   alert("you are not able to push back button");
 });

Я создал веб-приложение с использованием полимера 2.0, но мне нужно нажать на кнопку "Назад", чтобы браузер вышел из системы. Я должен показать предупреждение, если пользователь нажимает кнопку "Назад" в браузере. Я пробовал window.addEventListener, но все еще получил ошибка.

1 ответ

Я не смог остановить кнопку возврата браузера, но мне удалось обойти это. В моем приложении я хочу предупредить пользователя о том, что он выйдет из системы, выполнив резервное копирование на первую страницу, и дать ему возможность уйти или остаться на месте. С использованием polymer-2-starter-kit в качестве отправной точки, и отслеживание connected собственности, я получил это работает:

_routePageChanged(page) {
  // If no page was found in the route data, page will be an empty string.
  // Default to 'home' in that case.
  this.page = (page && this.connected) ? page : 'home';

  // Close the drawer.
  this.drawerOpened = false;
}

_pageChanged(page, oldPage) {
  // Warn user if backing up logs out.
  if ((page == '' || page == 'home') && this.connected) {
    if (window.confirm("Do you really mean to logout?")) {
      this.$.xhrLogout.generateRequest();
    } else {
      window.history.forward();
    }
  }
  const resolvedPageUrl = this.resolveUrl('my-' + page + '.html');
  Polymer.importHref(
      resolvedPageUrl,
      null,
      this._showPage404.bind(this),
      true);
}

Поэтому, если пользователь подключен и переходит на начальную страницу, я могу заставить его остаться на той странице, где он был window.history.forward(),

Другие вопросы по тегам