Javascript 如何关闭多个浏览器选项卡?
我正在使用Javascript 如何关闭多个浏览器选项卡?,javascript,richfaces,Javascript,Richfaces,我正在使用RichFaces开发一个Web应用程序 在主页上,有许多页面链接,每次单击链接都需要在新选项卡中显示相应的页面 要求:- <rich:panelMenuGroup> <rich:panelMenuItem> <h:outputLink value="#" onclick="return NewWindow('./../sample.jsp','Sample 1');"> <h:o
RichFaces
开发一个Web应用程序
在主页上,有许多页面链接,每次单击链接都需要在新选项卡中显示相应的页面
要求:-
<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();"/>
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();
}
}
<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>
当我点击注销按钮时,上面的页面链接选项卡
需要自动关闭
我试过一些方法,但达不到我的要求
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();"/>
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();
}
}
<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>
Java脚本:-
<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();"/>
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();
}
}
<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>
var object=new Array();
函数NewWindow(mypage,myname)
{
var newwin=window.open(我的页面,“空白”);
object.push(newwin);
if(window.focus)
{
newwin.focus()
}
返回false;
}
函数closeTabs()
{
对于(i=0;i
在刷新页面之前,上述代码工作正常,因为刷新时,var对象
数组会自动重置
是否有其他方法关闭选项卡
请帮助我完成此操作。我希望更新脚本将解决您的问题。请试试这个
var object=new Array();
函数NewWindow(mypage,myname)
{
var newwin=window.open(我的页面,“空白”);
object.push(newwin);
if(window.focus)
{
newwin.focus()
}
localStorage.tabArray=JSON.stringify(对象);
返回false;
}
函数closeTabs()
{
object=JSON.parse(localStorage.tabArray);
对于(i=0;i }
@Alexis Toby,我尝试使用您的代码,但在下面的注释中标记了异常
我将您的代码集成到下面:-
<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();"/>
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();
}
}
<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>
var objectArray=新数组();
函数NewWindow(mypage,myname)
{
var newwin=window.open(我的页面,“空白”);
objectArray.push(newwin);
localStorage.tabArray=JSON.stringify(objectArray);
if(window.focus)
{
newwin.focus()
}
返回false;
}
函数closeWindow()
{
objectArray=JSON.parse(localStorage.tabArray);//在这一部分中,异常即将出现,为什么?
对于(i=0;i
尝试将您的var对象重命名为其他对象,因为object是JavaScript中的一个关键字,因此您可能会混淆JavaScript引擎。请尝试将数组存储在某个localstorage中,并在刷新后保留它。@jeff,尝试过但没有用@Alexis Toby,已经尝试过localstorage,但是包含windows对象的数组被转换为字符串是一个问题。在localstorage中的对象数组中存储值之后,我需要windows对象。在这里,localstorage将windows对象转换为字符串格式,以便在保存后从localstorage获取值时,我无法获取作为windows对象来关闭选项卡。我在firebug中遇到此错误“SyntaxError:JSON.parse:JSON数据的第1行第1列出现意外字符“如果我使用上述选项,那么JSON解析得不好。你能给你看JSON样本吗?@venkatRaj很抱歉,我没有理解你的意思?你能把你的JSON全部添加到这个答案中吗?@Alexis Toby,哪一个?打开新标签后,你会在objectArray中得到一些数据,这是我要问的数据。@Alexis Toby,“[object Window],[object Window]”这是我得到的,打开两个选项卡后。objectArray.push(newwin)中objectArray的值是多少;localStorage.tabArray=JSON.stringify(objectArray);