top.frames["b"].location.href = 'c.htm';

解决方案 »

  1.   

    top.frames["b"].location.href = "c.htm";
    top.frames[1].location.href = "c.htm";
      

  2.   

    if (top.location != self.location)top.location=self.location;
    从你这段js来看你的javascript的代码是放在frameset页面的head部分,执行这行语句和下一行top.b.src = 'c.htm';时frame对象窗口还没有创建,所以top.b.src是个未定义东西,另外好像没有top.b.src这个用法,要达到你的效果一楼列的用法是对的,但是要注意窗口创建的时序问题,有效的方法应该如下:
    <HTML>
    <HEAD>
    <TITLE></TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--function init(){
    if (top.location != self.location)top.location=self.location;
    alert(top.b.src)//看看这个东西什么也不是,说明没有这个用法
    alert(top.b.location.href)//当前frame
    top.b.location.href = 'test.htm'; //或者b.location.href="test.htm"
    //alert(t)
    }
    //-->
    </SCRIPT>
    </HEAD><frameset cols="230,*" onload="init();">//onload后frame窗口对象才被创建
    <frame id="a" name="a" src="a.htm">
    <frame id="b" name="b" src="b.aspx">
    </frameset></HTML>
      

  3.   

    非常感谢楼上几位,特别是shenjf2000(一路走来)
    你看得非常仔细,其实前面几位的方法我都试过,但是就是不行,原来放在head里面直接执行frame对象还没创建,真的非常感谢!