如何计算打开新窗口?

时间:2010-07-01 10:19:21

标签: javascript jsf

我想计算打开的新窗口的数量。

但是,当我关闭打开的newWindow时,请减少窗口数。

我的新窗口也有 closelink

我可以选择 closelink 浏览器关闭窗口

更新

如果我打开了2个新窗口,那么我计算当前打开的窗口。

但是,如果我关闭的任何窗口(关闭链接或浏览器关闭窗口),现在只打开一个新窗口。

这里我不知道,如何显示打开的窗口数是1。

共有4个文件: MainPage.jsp newwindow1.jsp newwindow2.jsp windowcount.js

MainPage.jsp

<f:view>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">            
        <a4j:loadScript src = "windowcount.js" />
    </head>
    <body>                     
            <h:outputLink value="#" onclick="window.open('newwindow1.jsp','firstwindow','width=600,height=600');addWindowCount();">
                <h:outputText value="new Window1"/>
            </h:outputLink>

            <h:outputLink value="#" onclick="window.open('newwindow2.jsp','secondWindow','width=600,height=600');addWindowCount();">
                <h:outputText value="New window 2"/>
            </h:outputLink>                

        <a4j:commandButton value="Get Window Count" onclick="getNewWindowCount();"/> 

    </body>
</html>

newwindow1.jsp

<f:view>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">           
        <title>First Window</title>           
    </head>
    <body>          
         <a4j:commandLink id="firstWindowCloseLinkId" 
                          value="Close Window" 
                          onclick="javascript:window.close()"/>            
    </body>
</html>

newwindow2.jsp

<f:view>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">           
        <title>Second Window</title>           
    </head>
    <body>          
         <a4j:commandLink id="secondWindowCloseLinkId" 
                          value="Close Window" 
                          onclick="javascript:window.close()"/>            
    </body>
</html>

windowcount.js

var countNewWindow = 0;

function addWindowCount()
{
     countNewWindow++;
}

function getNewWindowCount()
{
    alert("Current opened NewWindow : " + countNewWindow);
}

帮我解决这个问题。 谢谢你的努力。

2 个答案:

答案 0 :(得分:0)

你不能。

JavaScript无法访问其他打开的窗口,除非使用window.open()打开它们。

答案 1 :(得分:0)

我再添加一个按钮和javscript。但我无法获得opensPopup窗口计数。 的 MainPage.jsp

<a4j:commandButton value="PopupCount" onclick="countOpenPopups();"/>

javaScript是:

function countOpenPopups()
{    
   var iCount = 0;
   for (var i = 0; i < eWebEditPro.popups.length; i++)
   {
       if (eWebEditPro.popups[i].isOpen())
       {
          iCount++;
       }
   }
   alert("iCount : " +iCount);

}

我指的是这个。 http://dev.ektron.com/kb_article.aspx?id=568

我认为此脚本与 eWebEditPro 相关。 可以实现到普通的浏览器链接(FireFox,IE等...)