你这样是要求在网页A中使用呀,如果我在网页B中来个mywin.document.xxx,它也认识mywin这个变量吗?

解决方案 »

  1.   

    这是个例子。
    http://www20.brinkster.com/lostinet/a.html
      

  2.   

    大家帮忙呀!分不够,还可以再给的!
    Lostinet(Lostinet) :你提供的那个例子也是针对当前页所打开窗口的呀
      

  3.   

    你看得明那代码,就知道怎样用了。
    -------------------
    实际上,把a.html复制成c.html ,还是可以的。
      

  4.   

    我实在是看不明白呀,如果你觉得行,试达到以下功能:
    1、启动IE加载网页A,并打开一个窗口b
    2、再次启动IE加载网页A,并直接关闭窗口b(不能重新打开窗口b,然后再关闭)如果能达到上面要求,我愿以200分相送,如果别人没意见,加帖再次给分也行!
    先谢过啦
      

  5.   

    我的方法一定要打开窗口。
    如果不想打开。那就没有办法了。
    -----------------
    或者做个ActiveX
    寻找窗口名字,
    然后把窗口关闭。
      

  6.   

    我实在是看不明白呀,如果你觉得行,试达到以下功能:
    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值,则自行关掉综上,我的思路是否很完美:)
      

  7.   

    mywin=open("hompage.htm","mywindow");
    这个变量是在mywin的parent中定义的object,肯定不能在不相关的页面中调用,要不网页早就乱了!
    这个问题可以引向另外一个问题,就是:
    是否在一个网页中定义一个可以在所有网页中都能够使用的变量!
    我个人认为那是不可能的,因此你的想法无法在显示中做到!
      

  8.   

    哦,对了,除了定义变量之外,引用cookie到是个可行的办法,不过总觉得有点那个!!!
      

  9.   

    weidegong(weidegong)这招厉害,就这招了,理论上没有问题,结帐吧!
      

  10.   

    哦,是想用户只看你的网页,就把别人的网页给KILL了,好让用户专心专注地.....。但这样的话weidegong的理论就不行了,因为别人网页不一定要用cookie呀。不过系统环境变量中,肯定有窗口的句柄,就是能不能通过正常的途径获得,即使获得,脚本语言支持KILL方式吗?
      

  11.   

    To 8988晓月:
       你看一下我的几个约定。Kill别人的网页,即使能够实现,也是绝对不可用的。否则,网站就关门大吉吧。
       那样不如使用全屏呢
      

  12.   

    to weidegong(weidegong):你假设的情况,和我实际的情况是相符的,目前似乎也只你这种方法是比较好了。如果不是太麻烦,希望你把代码也贴也让我学习学习。我介绍一下我这个问题的来由吧:这里,A1文件是程序的入口,同时也是主页,
    B窗口加载的是程序的集中管理模块,用户身份采用session保存,在A1文件和B窗口中共用,用户身份通过B窗口的关闭事件注消,这样做之后,有一个情况是:当用户刷新A1文件或换名登录时,在新打开B窗口时,首先就引发了B窗口的关闭事件,导致session注销,故而,我希望在加载A1文件时先要知道B窗口的情况,然后分情况处理。
      

  13.   

    if the opened windows are related, 
    try
    win = window.open("","mywindow");
      

  14.   

    代码马上在下面贴出来。  看了你的描述,感觉要实现你的功能还需要你自己定制一下,将session和cookie结合使用,控制起来非常灵活的。
      

  15.   

    说明:只要刷新A或者重新打开A时,B就会自动关闭。时间间隔设置为100毫秒,足够用了。你可以在打开或关闭页面时设置不同的值来达到你的最终目的文件A代码:
    ----
    <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"))>
      

  16.   

    我已经用下面方法达到用A打开一个窗口temp3,然后用B接管temp3了,相关文件如下,在此对各位热心的朋友表示感谢!结帖啦
    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>