注:该变量不能通过传给服务端的request或者session保存,因为我保存的变量是window.open打开后的窗口句柄,服务端是不认识这种类型的。

解决方案 »

  1.   

    你可以把值串在URL后面.通过这个来传递.
    或是,用Cookie来实现.不同页面间的值共享.demo.htm<script> 
    function setCookie(name,value)
    {
        var Days = 30; //此 cookie 将被保存 30 天
        var exp  = new Date();    //new Date("December 31, 9998");
        exp.setTime(exp.getTime() + Days*24*60*60*1000);
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
        location.href="read.htm";
    }
    </script> 
    <form name=form>
    name:<input type=text name=sname1>
    <input type=button value="Set" onclick="setCookie('bao',document.all.sname1.value)">
    </form>
    read.htm<script> 
    function getCookie(name)
    {
        var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
        if(arr != null) return unescape(arr[2]); return null;
    }
    </script> 
    <input type=button value="Get" onclick="alert(getCookie('bao'))">
      

  2.   

    如果是框架结构的话也可以把变量引用指向TOP框架:
    top.t="test";
      

  3.   

    我就是用url来传送这种公共变量的
      

  4.   

    wanghr100(灰豆宝宝.net)的测试用例很好玩,但当我把窗口句柄(window.open()的返回值)设置到cookie中,
    再在另外一个一页面取出来(放到变量w中),在做w.location.reload()刷新操作时,浏览器说w.location是
    空值.我检查过了,w中是有值的.是不是可以这样认为,从cookie中取出后,浏览器不知道w是窗口句柄了呢?没有用框架,我用的是window.opener跟踪,但很容易被window.close()关掉,从而丢掉这个句柄.我需要共享的变量是window.open()打开的窗口句柄,用url传送是不行的.
      

  5.   

    在上一个框架的window下,例如上一个框架中
    var s='aaa'
    那么在下一框架中则这样用
    frameName.window.s