我正在开发一个网络应用程序。
其中,我需要在主页的不同浏览器选项卡中打开多个页面,如果主页关闭,则所有其他打开的浏览器选项卡都需要关闭或单击关闭选项卡
按钮。
我通过使用 Array
完成此操作,但是当主页刷新时,Array
会自动重置。
示例代码:-
Jsp
<a4j:commandButton value="Test1" onclick="return newTab('test1.jsp');"/>
<a4j:commandButton value="Test2" onclick="return newTab('test2.jsp');"/>
<a4j:commandButton value="Test3" onclick="return newTab('test3.jsp');"/>
<a4j:commandButton value="Close Tab" onclick="closeTabs();"/>
JavaScript
var windowObject = new Array();
function newTab(mypage)
{
var newwin=window.open(mypage);
windowObject.push(newwin);
return false;
}
function closeTabs()
{
for (i = 0; i < windowObject.length; i++)
{
windowObject[i].close();
}
}
帮我解决这个问题。
最佳答案
如果您关闭/刷新主选项卡,那么您将丢失数组数据,并且您将无法关闭已打开的选项卡。
解决此问题的可能解决方案是,在本地存储中维护选项卡信息,以便每次调用 close() 时,然后从本地存储中获取选项卡名称,迭代它并关闭打开的选项卡。
本地存储仅支持存储字符串类型变量,您可以在下面有关如何在本地存储中存储和检索数组的问题中看到。 How do I store an array in localStorage?
关于javascript - 如何在localStorage中维护浏览器Tab对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49770685/