<html>
<head>
<script type = "text/javascript">
window.onload = function(){
var oFrame1 = document.getElementById("frame1"); alert(oFrame1.className);   //输出left
alert(oframes == window.frames[0]);   //输出false,为什么会不相等?不是应该都是指第一个frame元素么?
alert(window.frames.length);   //输出2,说明有两个frame元素
alert(window.frames[0].className);   //输出undefinded,为什么不是left?
}
</script>
</head><frameset rows = "50%,50%">
  <frame id = "frame1" class = "left"  src="./leftframe.html">
  <frame class = "right"  src="./rightframe.html">
</frameset></html>
为什么用window.frames[0]得到的frame元素和用document.getElementById("frame1")得到的frame元素是不同的?
window.frames[0]到底是什么?

解决方案 »

  1.   

    你的页面布局是不是用到了  frameset。。frameset里面会定义你这个页面又多少frame,这个window.frames[0]就是获得了这个frameset的第一个frame。window.frames[0].className 这句话就是获得了第一个frame中的那个classname的对象。
      

  2.   

    <FRAMESET COLS="25%, 50%, *">
      <FRAME SRC="contents.htm">
      <FRAME SRC="info.htm">
      <FRAME SCROLLING="NO" SRC="graphic.htm">
    </FRAMESET> 
      

  3.   

    alert(oFrame1);
    alert(window.frames[0]);
    这2个是不相等的。。你输出来看看就知道了
      

  4.   

    用firebug一看window.frames就知道了
      

  5.   


    alert(oframes == window.frames[0]); 写错了..
    应该是alert(oFrame1 == window.frames[0]); 
    alert(oFrame1);//输出object
    alert(window.frames[0]);//输出undedined..
      

  6.   

    同意7楼:怎么看都是楼主的代码写错了
    oframes 对象都不存在
    var oFrame1 = document.getElementById("frame1");
    alert(oframes == window.frames[0]);   //输出false,为什么会不相等?不是应该都是指第一个frame元素么?
      

  7.   


    <html>
    <head>
    <script type = "text/javascript">
    window.onload = function(){
        var oFrame1 = document.getElementById("frame1");
        alert(oFrame1 == window.frames[0].parent.document.getElementById("frame1"));   //输出false,为什么会不相等?不是应该都是指第一个frame元素么?
        
    }
    </script>
    </head><frameset rows = "50%,50%">
          <frame id = "frame1" class = "left"  src="./leftframe.html">
          <frame class = "right"  src="./rightframe.html">
    </frameset></html>
    document.getElementById("frame1")//获得的是页面元素
    window.frames[0]获得的是子窗体
    两者的类型不一样
      

  8.   

    子窗体有对应的html元素么?感觉子窗体不就是frame元素么?
      

  9.   

    窗体window和元素怎么会一样呢,对象结构就不一样。