以角度5处理浏览器标签

时间:2018-12-25 04:43:27

标签: angular browser tabs

我有一个情况,但是我没有解决办法,希望你们可以帮助我。

  1. 我在“信息中心”页面(标签1)上,我否定了新浏览器标签上的新页面(标签2)。
  2. 在新的浏览器选项卡(选项卡2)上,我执行了一些操作然后将其关闭。之后,我要重新激活“仪表板”页面(选项卡1)并重新加载它。我该怎么办?

1 个答案:

答案 0 :(得分:0)

仪表板和非仪表板页面是否起源于同一地方?然后,您可以执行以下方法:

// constructor in a component belonging to the dashboard
document.addEventListener("visibilitychange", () => { 
    if (!document.hidden) { 
      const nonDashBoardTabStatus: string = sessionStorage.getItem("nonDashBoardTabStatus");
      // do something with the retrieved information
    }
  }
);

在非仪表板组件中,您可以执行以下操作:

sessionStorage.setItem("nonDashBoardTabStatus", "SOME_STATUS");

现在,您只需要照顾一个事实,即不能保证非仪表板信息的存在(某些浏览器之间可能无法共享会话存储,或者在其他选项卡处于活动状态之前,一个选项卡未完成写入) ,因此您可能希望在其中放置一个循环以获取数据并进行回退。