如何判断某时一网页是否已经打开

sywcf 2010-01-06 10:03:37
如题,谢谢
...全文
456 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
newdigitime 2010-01-06
  • 打赏
  • 举报
回复
用javascript嘛.

var num=0;
function doclick()
{
if (num==0)
{
打开a.aspx
num+=1;
}
}
sywcf 2010-01-06
  • 打赏
  • 举报
回复
楼上兄弟不知测试没有,我刚才试了一下,不好使,还是弹出两个
夺命胖子 2010-01-06
  • 打赏
  • 举报
回复
我的解决办法

Default1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script type="text/javascript">
var WindowsFrame = null;
function Show(obj, url) {
if (obj != null) {
if (WindowsFrame == null) {
WindowsFrame = window.open("Default2.aspx", "", "fullscreen=1")
WindowsFrame.document.getElementById("frame").src = url;
}
else {
WindowsFrame.document.getElementById("frame").src = url;
}
}
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button" value="button" onclick="javascript:Show(this,'http://www.163.com');" />
<input id="Button2" type="button" value="button" onclick="javascript:Show(this,'http://www.csdn.net');" />
</div>
</form>
</body>
</html>


Default2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<iframe id="frame" src="" width="600" height="500"></iframe>
</div>
</form>
</body>
</html>
sywcf 2010-01-06
  • 打赏
  • 举报
回复
我只是举了一个和实际业务中用到的一样的例子而已,就是有两处要弹出同一个页面
a6711145 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sywcf 的回复:]
不是父子页面啊
[/Quote]

那你弄 2 个 按钮 干什么 哦? 不理解。
如果实在 要这样的话 那么 你 写 cookid 吧,
sywcf 2010-01-06
  • 打赏
  • 举报
回复
不是父子页面啊
a6711145 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sywcf 的回复:]
说下我的实际操作吧
有两上按钮,button1,button2,点击button1时,弹出页a.aspx,点击button2也弹出a.aspx,但不管是点击哪一个,只要a.aspx已经打开了,则不能再打开新窗口
[/Quote]

弄个隐藏域hflag 做 标量 如果打开 了页面就 hflag 的值 置为 1 没打开就是 0
你在打开页面前 去判断 hflag 就好了 子页面关闭的时候就 又把 hflag 置 0 就好了
sywcf 2010-01-06
  • 打赏
  • 举报
回复
说下我的实际操作吧
有两上按钮,button1,button2,点击button1时,弹出页a.aspx,点击button2也弹出a.aspx,但不管是点击哪一个,只要a.aspx已经打开了,则不能再打开新窗口
夺命胖子 2010-01-06
  • 打赏
  • 举报
回复
1 判断是一直处在打开状态?

轮询吧,笨办法,不停向服务器发请求,超时则认为关闭

2 还是只要打开?不管是否关闭?

设个标志位吧,打开了就更新下


sywcf 2010-01-06
  • 打赏
  • 举报
回复
自已顶一下
sywcf 2010-01-06
  • 打赏
  • 举报
回复
继续等楼下
马老虎 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sywcf 的回复:]
我不想用写入数据库或文本的方式,也不想用session,还有没有其它的办法呢?
在网上查了几个js的,但都不好用。继续等楼下
[/Quote]


//看来只能用JS了
//js只能子页面判断父页面是否打开(权限限制)
//子页面判断父页面是否打开
if (this.window.opener !=null && this.window.opener !="" && !window.opener.closed)
{
alert('父页面没有关闭');
}
Lovely_baby 2010-01-06
  • 打赏
  • 举报
回复
这个比较难。不过你要“限制同时打开多个同一个页面”,可以给窗口命名,这样打开时就不会在新窗口打开。
这不用用到ASP,只是HTML就可以了。在链接后加上:
target="WindowName"
webdiyer 2010-01-06
  • 打赏
  • 举报
回复
http是无状态的,你这要求有点难哦,你最多只能知道他请求过该页面没有

===================================================
ASP.NET WebForm和ASP.NET MVC分页最终解决之道
sywcf 2010-01-06
  • 打赏
  • 举报
回复
麻烦楼上的给提供一下源码呗,我没懂,谢谢
hitlcyu19 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cuike519 的回复:]
只要有请求这个页面,则这个页面就可以认为是打开的。
[/Quote]
恩 我觉得也是
sywcf 2010-01-06
  • 打赏
  • 举报
回复
我不想用写入数据库或文本的方式,也不想用session,还有没有其它的办法呢?
在网上查了几个js的,但都不好用。继续等楼下
cuike519 2010-01-06
  • 打赏
  • 举报
回复
只要有请求这个页面,则这个页面就可以认为是打开的。
seesea125 2010-01-06
  • 打赏
  • 举报
回复
是在服务器端吗?要是在服务器端的话,你可以在网页打开的时候,写数据库,写日志都可以
想在客户端的话,浏览器五花八门的,就不好办了
luxi0194 2010-01-06
  • 打赏
  • 举报
回复
这个特别简单呀,用window.open打开的时候有个winname,只要winname是固定的,不论怎么点击,都不会打开新的窗口,一直都是已经打开的窗口。
加载更多回复(4)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧