To 8988晓月: 你看一下我的几个约定。Kill别人的网页,即使能够实现,也是绝对不可用的。否则,网站就关门大吉吧。 那样不如使用全屏呢
to weidegong(weidegong):你假设的情况,和我实际的情况是相符的,目前似乎也只你这种方法是比较好了。如果不是太麻烦,希望你把代码也贴也让我学习学习。我介绍一下我这个问题的来由吧:这里,A1文件是程序的入口,同时也是主页, B窗口加载的是程序的集中管理模块,用户身份采用session保存,在A1文件和B窗口中共用,用户身份通过B窗口的关闭事件注消,这样做之后,有一个情况是:当用户刷新A1文件或换名登录时,在新打开B窗口时,首先就引发了B窗口的关闭事件,导致session注销,故而,我希望在加载A1文件时先要知道B窗口的情况,然后分情况处理。
if the opened windows are related, try win = window.open("","mywindow");
http://www20.brinkster.com/lostinet/a.html
Lostinet(Lostinet) :你提供的那个例子也是针对当前页所打开窗口的呀
-------------------
实际上,把a.html复制成c.html ,还是可以的。
1、启动IE加载网页A,并打开一个窗口b
2、再次启动IE加载网页A,并直接关闭窗口b(不能重新打开窗口b,然后再关闭)如果能达到上面要求,我愿以200分相送,如果别人没意见,加帖再次给分也行!
先谢过啦
如果不想打开。那就没有办法了。
-----------------
或者做个ActiveX
寻找窗口名字,
然后把窗口关闭。
1、启动IE加载网页A,并打开一个窗口b
2、再次启动IE加载网页A,并直接关闭窗口b(不能重新打开窗口b,然后再关闭)
如果能达到上面要求,我愿以200分相送,如果别人没意见,加帖再次给分也行!
先谢过啦
不用谢:)
要实现上面的功能其实很简单。我有一个曲径通幽的办法,先讲一下思路,假如你觉得可以,我再把代码贴出来。
为了描述问题的方便,我们有几个约定:
1.我们称你在步骤一中打开的页面为A1;步骤二中打开的页面为A2;要关闭的窗口为B
2.无论窗口A1/A2或B,都是我们自己编写的页面,他们都在同一个域里。如果你的本意是想用A打开新浪的首页,然后试图关掉它,那么下面的不用看了。
3.我们假设你的目的只是关掉B,同时要求效率不是很高,比如要求在2秒之内,三秒之内关闭;或者你为了实现这个功能允许浏览器消耗一些资源
4.我们假设用户的浏览器支持javascript和Cookie等等,否则免谈实现问题的原理
1.A2<->B的消息传递:众人之所以认为你的要求不能达到,是认为A2和B没有办法进行通讯,或者得不到B的句柄。但是事实上他们是可以互相传递消息的,那就是Cookie
2.A2发出关掉B的消息 当A2想要关掉B的时候,A2必须设置一个Cookie,我们假设为Command=BmustClose
3.B需要不断接收有否来自A2的消息 我们可以设置每隔1秒/2秒B检查一次Cookie,看看有否"Command=BmustClose",假如发现这个Cookie值,则自行关掉综上,我的思路是否很完美:)
这个变量是在mywin的parent中定义的object,肯定不能在不相关的页面中调用,要不网页早就乱了!
这个问题可以引向另外一个问题,就是:
是否在一个网页中定义一个可以在所有网页中都能够使用的变量!
我个人认为那是不可能的,因此你的想法无法在显示中做到!
你看一下我的几个约定。Kill别人的网页,即使能够实现,也是绝对不可用的。否则,网站就关门大吉吧。
那样不如使用全屏呢
B窗口加载的是程序的集中管理模块,用户身份采用session保存,在A1文件和B窗口中共用,用户身份通过B窗口的关闭事件注消,这样做之后,有一个情况是:当用户刷新A1文件或换名登录时,在新打开B窗口时,首先就引发了B窗口的关闭事件,导致session注销,故而,我希望在加载A1文件时先要知道B窗口的情况,然后分情况处理。
try
win = window.open("","mywindow");
----
<script language=javascript>function GetCookie (name) {//获取名字为name的Cookie的值
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function SetCookie (name, value) {//设置名字为name,值为value的Cookie
document.cookie = name + "=" + escape (value)
}function window.onload(){//A页面打开时设置Cookie
SetCookie("cookieA","0")
}</script><html>文件B代码
----------
<script language=javascript>function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function SetCookie (name, value) {
document.cookie = name + "=" + escape (value)
}
function window.onload(){//B页面打开时设置cookieA=B
SetCookie("cookieA","B")
setInterval('acceptA()',100);//设置每隔100毫秒读取一次cookieA
}function acceptA(){//接收cookieA,并进行处理
if(GetCookie("cookieA")=="0"){
self.opener=null;
self.close();
}
}
</script>
<input type=button value=Get Cookie onclick=alert(GetCookie("cookieA"))>
A.htm:<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<script>
win=window.open('temp3.htm','temp3');
</script>
</body>
</html>B.htm:<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<script>
win=window.open('','temp3');
try
{
thevar=win.document.all.text1.value;
alert("temp3 原来就打开了,thevar="+thevar);
}
catch(x)
{
win.location='temp3.htm';
thevar=win.document.all.text1.value;
alert("temp3 是新打开的,thevar="+thevar);
}
</script>
</body>
</html>
temp3.htm:<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<input type="text" name="text1" value="temp3">
</body>
</html>