frame与iframe的区别

发布于 2015-12-02 17:41 类别: tech

在java中,frame是一种控件,可作为父窗体加载其他swing控件。那在html中iframe元素会创建包含另外一个文档的内联框架(即行内框架)。<frame>标签定义 frameset 中的一个特定的窗口(框架)。

Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。它和Frame标记的最大区别是在网页中嵌入的<Iframe></Iframe>所包含的内容与整个页面是一个整体,而<Frame></Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内容的代码。

两者主要区别如下: - frame不能脱离frameSet单独使用,iframe可以;

  • frame必须在frameset里,而frameset不能与body元素共存,也就说有frameset元素的文档只能是一个框架集,不能有别的东东;

  • iframme是活动帧,就像是浮动面板 ,而frame是非活动帧,iframe放在网页的什么地方都行,但是frame只能放到上下左右四个方向;

  • frame不能放在body中 如下:

<!--<body>--> 
<frameset rows="50%,*"> 
   <frame name="frame1" src="test1.htm"/>  
   <frame name="frame2" src="test2.htm"/>  
</frameset> 
<!--<body>--> 
  • 嵌套在frameSet中的iframe必需放在body中,不嵌套在frameSet中的iframe可以随意使用 如下:
  <body> 
    <frameset>  
      <iframe name="frame1" src="test1.htm"/>  
      <iframe name="frame2" src="test2.htm"/>  
    </frameset>  
  </body>
  //以下均可正常显示
  <body> 
   <iframe name="frame1" src="test1.htm"/>  
   <iframe name="frame2" src="test2.htm"/>  
  </body> 

  <!--<body>--> 
   <iframe name="frame1" src="test1.htm"/>  
   <iframe name="frame2" src="test2.htm"/>  
   <!--</body>--> 
  • frame的高度只能通过frameSet控制,iframe可以自己控制,不能通过frameset控制
<!--<body>--> 
<frameset rows="50%,*"> 
   <frame   name="frame1"   src="test1.htm"/>  
   <frame   name="frame2"   src="test2.htm"/>  
</frameset> 
<!--</body>--> 

<body> 
<frameset> 
   <iframe height="30%"  name="frame1"   src="test1.htm"/>  
   <iframe height="100"  name="frame2"   src="test2.htm"/>  
</frameset> 
</body> 
  • 如果在同一个页面使用了两个以上的iframe,在IE中可以正常显示,在firefox中只能显示出第一个;使用两个以上的frame在IE和firefox中均可正常

  • iframe 可以放到表格里面。frame 则不行。

<table> 
    <tr> 
        <td><iframe id="" src=""></iframe></td><td></td> 
    </tr> 
</table> 

Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性。 frame是整个页面的框架,由多个并列的网页构成。而iframe是内嵌的网页元素,也可以说是内嵌的框架,是一个网页中的子框架,两网页间是父子关系。