一个主页面frameset有两个子页面frame a 和 frame b
在 a 中有一个二维数组,当 刷新b页面后,发现再调用a窗体的二位数组(全局变量)的时候已经不能在a窗体中正常调用了(都是空的),但是用alert();还能把二位数组显示出来研究了一天,也没有琢磨出来不知道各位有没有也遇到过这种情况,请了解的讲讲原因。
我认为这个可能是bug

解决方案 »

  1.   

    不能使用是什么意思??没发现你的情况,应该你自己js有问题
    test.htm
    <frameset cols="50%,50%">
    <frame src="a.htm" id="a"/>
    <frame src="b.htm" id="b"/>
    </frameset>a.htm
    a.htm<br/>
    <script>
    var arr=[[0,1],[2,3]];
    document.write("time:"+new Date()+"<br/>")
    </script>
    <input type="button" onclick="alert(arr)" value="arr"/>b.htm
    b.htm<br/><input type="button" onclick="alert(parent.frames['a'].arr)" value="parent.frames['a'].arr"/>
    <input type="button" onclick="location.reload()" value="刷新"/>
    <script>
    document.write("time:"+new Date()+"<br/>")
    </script>
      

  2.   

    把a页面的二位数组写成变量,
    var ApplyData = new Array();
    然后在 b页面中
    var apply_data = window.parent.frames.b.ApplyData
    apply_data[apply_data.length] = new Array("123","jkj");
    这样的话,如果刷新 b页面,之前加到a页面ApplyData中的数据就不能正常读出来了。
      

  3.   

    //var apply_data = window.parent.frames.b.ApplyData //=========你这里怎么引用了自己页面的变量????????????????......此时就是undefined了.......汗......
    //====>
    var apply_data = window.parent.frames.a.ApplyData //是frame为a页面的变量
    apply_data[apply_data.length] = new Array("123","jkj"); 
      

  4.   

    对,楼上说得对,源程序太长,我是现写的例子,例子写错了,但是源程序没有错哦
    把a页面的二位数组写成变量, 
    var ApplyData = new Array(); 
    然后在 b页面中 
    var apply_data = window.parent.frames.a.ApplyData 
    apply_data[apply_data.length] = new Array("123","jkj"); 
    这样的话,如果刷新 b页面,之前加到a页面ApplyData中的数据就不能正常读出来了。
      

  5.   

    var apply_data = window.parent.frames.a.ApplyData
    apply_data[apply_data.length] = new Array("123","jkj").slice(0);