@McThinker

Как перенаправить пользователя на урл с такой же вкладкой?

Есть админ панель. С целью экономии оперативы, хочу запретить открытие дублирующих вкладок. Как это реализовать?
Вижу так:

$(document).ready(function(){
    let url = location.href;
    if(localStorage.getItem("urlOrderView") === url){
      alert("Вкладка уже открыта");
      let a = window.open(url);
      a.focus(); // так не отрабатывает
    }else{
      localStorage.setItem("urlOrderView", url);
    }

    $(window).unload(function(){
      localStorage.removeItem("urlOrderView");
    })
  })

Как закрыть дубль и перенаправить в уже открытую?
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
Вкладки могут общаться между собой посредством отслеживания события storage:

Знаете ли вы, что localStorage запускают события? Точнее, событие возникает, когда нечто добавляется, меняется или удаляется из хранилища. Это значит, что когда вы касаетесь localStorage в любой вкладке, все остальные могут узнать об этом. Достаточно прослушивать события в объекте window:
window.addEventListener('storage', function (event) {
  console.log(event.key, event.newValue);
});


Надеюсь сами догадайтесь, как это применять? Источник: https://habr.com/ru/post/250891/
Ответ написан
@gimntut
Во-первых. Никак. По сути это выход за пределы песочницы. Хакеры были бы довольны, если бы имели возможность перекидывать пользователя между закладками и путая его и отправляя на фишинговые сайты.
Во-вторых. Забота о памяти через контроль количества закладок является ответственностью пользователя. Мне было бы неприятно, если бы я не мог открыть приложение в 2х окнах, хотя мне это нужно.
В-третьих. Посмотри как эта проблема решена на https://web.whatsapp.com/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы