如何判断一个已经命名的窗口是否已经打开???

时间:2022-05-30 08:58:38

我在做一个web版的即时通信,类QQ的东西,比如需求如下
如果我先有个提示信息,提示有没有信息,如果有点击弹出一个页面 
如果这个页面已经弹出,那我就不用再弹出了,请问我该如何判断一个页面是否已经弹出。就象QQ那样,查看信息时候已经弹出窗口了就不用弹了。高人出来指点下,最好有代码。多谢

22 个解决方案

#1


用window.open
给他个窗口名
如果已经打开就不会新打开窗口

#2


这里的问题是

判断窗口是否已经打开

而不是防止打开多次

#3


http://www.cnblogs.com/dahuzizyd/archive/2004/06/22/17879.html

#4


你这个好象不行

谁提供个JS脚本
我自己找了个,但是判断的时候它总是自动打开一个窗口
判断的时候不要这样的
HELP

#5


不要用 cookie,session 什么的思路。。

#6


<html>
<script>
var xxx;
function openWindow()
{
    xxx = window.open("a.htm","javascript");
}
function closeWindow()
{
if (xxx && xxx.open && !xxx.closed)
{
   xxx.close();
}
}
</script>
<input type="button" value = "open" onclick="openWindow()">
<input type="button" value = "close" onclick="closeWindow()">
</html>

#7


window.open 完全可以达到效果,楼主为什么认死一定要坐火车才能去北京呢,免费的飞机难道不是更好。

用window.open完全可以实现你说的“就象QQ那样,查看信息时候已经弹出窗口了就不用弹了”,而且根本不需要去判断。

#8


这里的问题是
判断窗口是否已经打开
而不是防止打开多次


你判断的目的何在? 照你上面说你判断的目的其实就是要防止多次打开,坐火车去北京,你要做的事难道不是去北京而是坐火车么?

#9


楼上的正解。。。。。LZ应该 去试试不就得了。。。。。。。。。。。。

#10


if 窗体ID!=null
{
     //可进行操作,窗体已经打开了
     function
}

#11


多谢各位热情棒场
可能我没说清楚
我的需求就是要判断页面是否打开!!!!具体点的需求如下,这里是即时通信的一部分,如果有新信息,则显示‘有N条新信息’,点击这个提示,依次显示信息,这里就打开新页面了,如果已经打开一个新信息相应页面,那这个新信息就不用显示了,新信息提示在刚刚已经打开的页面。所以要判断某页面是否打开。信息提示我这里用ajax定时刷新,但是就出现这个判断页面打开问题。最好用JS,无奈之极,急着等救命了

#12


这个问题不知道
帮定了

#13


给已经查看的信息加一个标志位,根据标志位判断是不是已经打开,不明白为什么一定要根据页面判断。

#14


代码不是给你了么?
你自己改改就好了啊~~~~`
难道非得别人给你写的一字不差??Faint~~~~

if (xxx && xxx.open && !xxx.closed)
{
//页面已经打开~~~~
}
else
{
    xxx = window.open....
}

#15


我倒 这个答案BAIDU一下能搜索出几百条
如果这样做的话
也就是相当于它自己先弹出自己要判断的页面
再判断  搞笑了。

#16


当初我就是这样做的
但不合理
因为如果你判断有几个不同命名页面的话
它会先自动弹出这些页面然后判断
这不是废话吗

#17


因为如果你判断有几个不同命名页面的话
它会先自动弹出这些页面然后判断
----------
???
什么意思
恕我没看明白
为什么会自动弹出页面然后判断??
我都说了,难道非得别人给你写出现成的代码??
自己难道就不会根据人家写好的改改??
我真服了~~~

#18


<script>
var xxx;
function clickHref()
{

if (xxx && xxx.open && !xxx.closed)
{
return;
}
xxx = window.open("2.htm");
document.all.aaa.style.display = "none";
}

function ajax()
{
//取信息状态
.............

if (xxx && xxx.open && !xxx.closed)
{
//隐藏信息
document.all.aaa.style.display = "none";
}
else
{
//显示新信息
document.all.aaa.style.display = "";
}
setInterval('ajax()',1000);
}
</script>
<form id="form1" onload="ajax()">
<a name="aaa" href="#" onclick="clickHref()" target="_self">信息</a>
</form>

我理解下来这样基本可以符合要求了
没调试
自己改改
我搞不清楚这样为什么会自动弹出页面~~~~~~~

#19


谢谢
就算没解决问题也给你加分了。。
因为我这个问题的性质不一样
你给的代码没意义
不好意思  忘贴代码了
简单的来说
如果我知道某一页面的命名
咨询下
我可以判断这个页面已经打开吗

#20


我知道你是什么意思,因为我也在做这个东西。

你想判断一个子窗口是否已经打开了,
如果已打开就给这个窗口发送数据。
如果没有打开就先打开再发送数据。
上面几个人说的是先开一个同名窗口再操作,
但这样做的后果是子窗口的原有信息都丢失了,
所以是不能不判断就开同名窗口的。

很多IT产品网站有 “产品比较”页面,可以让你选几个产品进去比较,原理就有点像这个。

#21


有位朋友提到了用 if(窗体!=null) 来判断,我认为这个是正确的办法。

#22


除了用JS没有其它办法!!

#1


用window.open
给他个窗口名
如果已经打开就不会新打开窗口

#2


这里的问题是

判断窗口是否已经打开

而不是防止打开多次

#3


http://www.cnblogs.com/dahuzizyd/archive/2004/06/22/17879.html

#4


你这个好象不行

谁提供个JS脚本
我自己找了个,但是判断的时候它总是自动打开一个窗口
判断的时候不要这样的
HELP

#5


不要用 cookie,session 什么的思路。。

#6


<html>
<script>
var xxx;
function openWindow()
{
    xxx = window.open("a.htm","javascript");
}
function closeWindow()
{
if (xxx && xxx.open && !xxx.closed)
{
   xxx.close();
}
}
</script>
<input type="button" value = "open" onclick="openWindow()">
<input type="button" value = "close" onclick="closeWindow()">
</html>

#7


window.open 完全可以达到效果,楼主为什么认死一定要坐火车才能去北京呢,免费的飞机难道不是更好。

用window.open完全可以实现你说的“就象QQ那样,查看信息时候已经弹出窗口了就不用弹了”,而且根本不需要去判断。

#8


这里的问题是
判断窗口是否已经打开
而不是防止打开多次


你判断的目的何在? 照你上面说你判断的目的其实就是要防止多次打开,坐火车去北京,你要做的事难道不是去北京而是坐火车么?

#9


楼上的正解。。。。。LZ应该 去试试不就得了。。。。。。。。。。。。

#10


if 窗体ID!=null
{
     //可进行操作,窗体已经打开了
     function
}

#11


多谢各位热情棒场
可能我没说清楚
我的需求就是要判断页面是否打开!!!!具体点的需求如下,这里是即时通信的一部分,如果有新信息,则显示‘有N条新信息’,点击这个提示,依次显示信息,这里就打开新页面了,如果已经打开一个新信息相应页面,那这个新信息就不用显示了,新信息提示在刚刚已经打开的页面。所以要判断某页面是否打开。信息提示我这里用ajax定时刷新,但是就出现这个判断页面打开问题。最好用JS,无奈之极,急着等救命了

#12


这个问题不知道
帮定了

#13


给已经查看的信息加一个标志位,根据标志位判断是不是已经打开,不明白为什么一定要根据页面判断。

#14


代码不是给你了么?
你自己改改就好了啊~~~~`
难道非得别人给你写的一字不差??Faint~~~~

if (xxx && xxx.open && !xxx.closed)
{
//页面已经打开~~~~
}
else
{
    xxx = window.open....
}

#15


我倒 这个答案BAIDU一下能搜索出几百条
如果这样做的话
也就是相当于它自己先弹出自己要判断的页面
再判断  搞笑了。

#16


当初我就是这样做的
但不合理
因为如果你判断有几个不同命名页面的话
它会先自动弹出这些页面然后判断
这不是废话吗

#17


因为如果你判断有几个不同命名页面的话
它会先自动弹出这些页面然后判断
----------
???
什么意思
恕我没看明白
为什么会自动弹出页面然后判断??
我都说了,难道非得别人给你写出现成的代码??
自己难道就不会根据人家写好的改改??
我真服了~~~

#18


<script>
var xxx;
function clickHref()
{

if (xxx && xxx.open && !xxx.closed)
{
return;
}
xxx = window.open("2.htm");
document.all.aaa.style.display = "none";
}

function ajax()
{
//取信息状态
.............

if (xxx && xxx.open && !xxx.closed)
{
//隐藏信息
document.all.aaa.style.display = "none";
}
else
{
//显示新信息
document.all.aaa.style.display = "";
}
setInterval('ajax()',1000);
}
</script>
<form id="form1" onload="ajax()">
<a name="aaa" href="#" onclick="clickHref()" target="_self">信息</a>
</form>

我理解下来这样基本可以符合要求了
没调试
自己改改
我搞不清楚这样为什么会自动弹出页面~~~~~~~

#19


谢谢
就算没解决问题也给你加分了。。
因为我这个问题的性质不一样
你给的代码没意义
不好意思  忘贴代码了
简单的来说
如果我知道某一页面的命名
咨询下
我可以判断这个页面已经打开吗

#20


我知道你是什么意思,因为我也在做这个东西。

你想判断一个子窗口是否已经打开了,
如果已打开就给这个窗口发送数据。
如果没有打开就先打开再发送数据。
上面几个人说的是先开一个同名窗口再操作,
但这样做的后果是子窗口的原有信息都丢失了,
所以是不能不判断就开同名窗口的。

很多IT产品网站有 “产品比较”页面,可以让你选几个产品进去比较,原理就有点像这个。

#21


有位朋友提到了用 if(窗体!=null) 来判断,我认为这个是正确的办法。

#22


除了用JS没有其它办法!!