Как заставить пользователя не дублировать вкладки браузера? - PullRequest
0 голосов
/ 03 июля 2019

Была задача сделать каждую веб-страницу проекта неповторяющейся. Те. пользователь не должен из-за невнимательности в одном браузере открывать несколько дубликатов одной и той же веб-страницы. Пожалуйста, предложите конкретное решение.

1 Ответ

0 голосов
/ 03 июля 2019

Задача может быть решена очень просто, если выполняется одно условие - каждая страница имеет свой уникальный идентификатор. У меня есть этот $ ("body"). Attr ("id"). Давайте вызовем функцию noDuplicateTabs и будем вызывать ее каждый раз при запуске страницы. Мы используем localStorage:

let noDuplicateTabs = function (pageName) {
  localStorage.getItem(pageName)
  ? window.close()
  : localStorage.setItem(pageName, 'open');

  window.onbeforeunload = function () {
     localStorage.setItem(pageName, '');
  };
}

Таким образом, мы передаем имя страницы в функцию, проверяем наличие значения, используя ключ localStorage, соответствующий имени страницы. Если ключ с непустым значением найден, то мы закрываем страницу, если нет, то записываем значение в нее «open».

Мы также используем свойство onbeforeunload окна, которое работает до перезагрузки или закрытия страницы. В этом случае мы удалим значение. Теперь в одном браузере не будет дубликатов.

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