我正在使用RichFaces
开发Web应用程序。
在主页上,有许多页面链接和每个链接点击需要在新标签页中显示相应的页面。
要求: -
当我点击退出按钮时,上面的页面链接tabs
需要自动关闭。
我试过某种方式,但无法达到我的要求。
JSP: -
<rich:panelMenuGroup>
<rich:panelMenuItem>
<h:outputLink value="#" onclick="return NewWindow('./../sample.jsp','Sample 1');">
<h:outputText value="Sample"/>
</h:outputLink>
</rich:panelMenuItem>
<rich:panelMenuItem>
<h:outputLink value="#" onclick="return NewWindow('./../test.jsp','Test');">
<h:outputText value="Test"/>
</h:outputLink>
</rich:panelMenuItem>
</rich:panelMenuGroup>
<h:commandLink value="Logout" action="--" onclick="closeTabs();"/>
Java脚本: -
var object = new Array();
function NewWindow(mypage,myname)
{
var newwin = window.open(mypage,'_blank');
object.push(newwin);
if (window.focus)
{
newwin.focus()
}
return false;
}
function closeTabs()
{
for (i = 0; i < object.length; i++)
{
object[i].close();
}
}
上面的代码工作正常,直到页面刷新,因为刷新时var object
数组会自动重置。
是否有其他方法可以关闭标签。
请帮我这样做。
答案 0 :(得分:1)
@Alexis Toby,我尝试使用你的代码,但在我评论的标记下面有例外。
我在下面整合了您的代码: -
<script type="text/javascript" language="javascript">
var objectArray = new Array();
function NewWindow(mypage,myname)
{
var newwin = window.open(mypage,'_blank');
objectArray.push(newwin);
localStorage.tabArray = JSON.stringify(objectArray);
if(window.focus)
{
newwin.focus()
}
return false;
}
function closeWindow()
{
objectArray = JSON.parse(localStorage.tabArray); // In this part exception coming, why?
for(i = 0; i < objectArray.length; i++)
{
objectArray[i].close();
}
}
</script>
答案 1 :(得分:0)
我希望更新脚本可以解决您的问题。请试试这个。
var object = new Array();
function NewWindow(mypage,myname)
{
var newwin = window.open(mypage,'_blank');
object.push(newwin);
if (window.focus)
{
newwin.focus()
}
localStorage.tabArray = JSON.stringify(object);
return false;
}
function closeTabs()
{
object = JSON.parse(localStorage.tabArray);
for (i = 0; i < object.length; i++)
{
object[i].close();
}
}