首页 > 解决方案 > 多个源浏览器选项卡,单个目标选项卡

问题描述

背景

我在我们的内部工具上工作,它是一个 JS webapp。用户询问他们是否可以单击链接并打开一个新选项卡,随后每次单击该链接都将加载到打开的同一选项卡中(链接 href 更改)。这不是问题。但问题是用户会在多个选项卡中打开我们的应用程序,但仍希望此链接在一个选项卡中加载。

对于单一来源,单一目的地问题,我会这样做:

let tab = null;

$scope.openLink = function() {
  if (tab && !tab.closed) {
    tab.location.href = 'http://duckduckgo.com';
    tab.focus();
  }
  else {
    tab = window.open('http://google.com','googlewindow');
  }
}

<a href="" ng-click="openLink()">click me</a>

问题

tab由于循环 javascript 对象和跨域安全问题,我无法将对象存储在任何东西中。我希望有一种方法可以减少tab对象,以便可以使用 IndexedDB 在其他选项卡中存储和使用它,甚至可以将其发送到我的数据库(MSSQL)。

我的问题

有没有办法存储信息,以便我可以从我的 Web 应用程序的任何实例设置选项卡的位置?

如果没有,是否有人做过其他解决方案?

最后的想法

我一直在努力解决这个问题,它可能正在推动浏览器功能或安全性的极限,但我被要求调查它,所以我现在就在这里。

标签: javascript

解决方案


推荐阅读