背景
我正在使用我们的内部工具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>
问题
由于循环JavaScript对象和跨域安全问题,我无法将tab
对象存储在任何对象中。我希望有一种方法可以减少tab
对象,以便可以使用IndexedDB在其他选项卡中存储该对象并将其使用,甚至可以将其发送到我的数据库(MSSQL)。
我的问题
是否可以存储信息,以便我可以从Web应用程序的任何实例设置选项卡的位置?
如果没有,那么有人有其他解决方案吗?
最终想法
我一直在研究这个问题,它可能正在推动浏览器功能或安全性的极限,但是我被要求调查一下,所以我现在就在这里。