Сможет ли @HostListener обнаружить, что новое окно / вкладка открыта с тем же URL-адресом веб-сайта? Если нет, то как обнаружить это событие? - PullRequest
0 голосов
/ 17 января 2020

Сможет ли @HostListener обнаружить, что новое окно / вкладка открыта с тем же URL-адресом веб-сайта? Если нет, то как обнаружить это событие?

Моя проблема: веб-сайт должен войти в систему из нового TAB / окна, используя только хранилище сеансов

сможет ли прослушиватель хоста определить, может ли новый вкладка Или окно было открыто с тем же URL? Это делается для того, чтобы не использовать локальное хранилище, использовать хранилище сеансов и работать с несколькими вкладками. Я могу пройти, как только на новой вкладке будет выполнена любая операция, например, изменение размера, но не сразу после ее открытия. Таким образом, пользователь выйдет из системы на некоторое время после открытия новой вкладки и войдет в систему после изменения размера окна.

Root .component.ts

 export class RootComponent {
 @HostListener('window:resize', ['$event'])
 onResize(event) {
 this.resizeService.setSize(+event.target.innerWidth);
 }

Изменение размера окна. service.ts

  private currentSize$: Subject<number> = new Subject<number>();
  constructor(private router: Router) {
  window.addEventListener('storage', (event) => {
  console.log('Event key in logout::' + event.key);
  if (event.key === 'currentUser') {
  console.log('inside');
  this.router.navigate(['/logout']);
  }
  });

Проблема здесь в том, что когда пользователь открывает новую вкладку и вводит URL моего веб-сайта, он не печатает «Event key in logout» в консоли. Но как только пользователь откроет другую страницу и изменится размер окна, он покажет это. Я напишу логи c, как только это отобразится в консоли, для новой открытой вкладки тоже

...