zoukankan      html  css  js  c++  java
  • 【HTML】 frame和iframe的区别

    1、frame不能脱离frameSet单独使用,iframe可以; 

    2、frame不能放在body中;如下可以正常显示: 
    <!--<body>--> 
    <frameset rows="50%,*"> 
       <frame   name="frame1"   src="test1.htm"/>  
       <frame   name="frame2"   src="test2.htm"/>  
    </frameset> 
    <!--<body>--> 

    如下不能正常显示: 
    <body> 
    <frameset rows="50%,*"> 
       <frame   name="frame1"   src="test1.htm"/>  
       <frame   name="frame2"   src="test2.htm"/>  
    </frameset> 
    <body> 

    3、嵌套在frameSet中的iframe必需放在body中;如下可以正常显示: 
      <body> 
        <frameset>  
          <iframe   name="frame1"   src="test1.htm"/>  
          <iframe   name="frame2"   src="test2.htm"/>  
        </frameset>  
      </body> 
    如下不能正常显示: 

      <!--<body>--> 
        <frameset>  
          <iframe   name="frame1"   src="test1.htm"/>  
          <iframe   name="frame2"   src="test2.htm"/>  
        </frameset>  
      <!--</body>--> 


    4、不嵌套在frameSet中的iframe可以随意使用; 
         如下均可以正常显示: 
    <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>--> 


    5、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> 


    6、如果在同一个页面使用了两个以上的iframe,在IE中可以正常显示,在firefox中只能显示出第一个;使用两个以上的frame在IE和firefox中均可正常 

    以上代码在IE7和firefox2.0中测试。 

    另外相关论坛窃取总结 :-) 
    1Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性。 
    frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架 

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

    2iframe 可以放到表格里面。frame 则不行。 
    <table> 
    <tr> 
    <td><iframe id="" src=""></iframe></td><td></td> 
    </tr> 
    </table> 

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

    4IFrame是放在网业的什么地方都行   
      但是frame只能放到上下左右四个方向 

    5iframme   是活动帧   
      而frame是非活动帧   
      iframe使用方法如下   
      <iframe   scr="sourcefile"   frameborder=0   width="width"   height="height"></iframe> 
    iframe用起来更灵活,不需要frame那么多讲究   
    而且放的位置也可以自己设 
    iframe是内嵌的,比较灵活,不过也有不好的地方,就是位置在不同的浏览器和分辨率下有可能不同,有时会把本来好好的页面搞得变形 

    iframe就没有这个限制 

    6iframe   可以加在网页中任何一个地方。   
      而frame   通常做框架页 
    iframe是一个网页中的子框架,两网页间是父子关系   
        
      frame是框架,由多个并列的网页构成 
    楼上的说得对,iframe是浮动的。就像是浮动面板,而frame是固定的。只能四个方向上的。   
    你可以直接在网页里用一下,看看效果就行了。 


    7<iframe>是被嵌入在网页的元素,而<frame>用于组成一个页面的多个框架! 
    iframe   更利于版面的设计   
      frame     一条直一条竖的不美观 
    frame的那一条线也可以去掉的呦!只不过,iframe更方便对其进行数据的交换吧! 
    iframe可以放置到你想放的任意位置,控制起来比frame方便 

    8iframe是内部帧,可以嵌在一个页面里面,设置内部帧的属性可以使得整体看上去象一个完整的页面,而不是由多个页面组成,frame有frame的好处,比如何多网站,上面放广告条,左边放菜单,右边放内容,这样上边和左边的内容都可不动,只刷新右边页面的内容,选择iframe还是frame完全看自己的需求。 

    说白了,用IFrame比用Frame少一个文件(FrameSet),但支持Frame的浏览器比较多。 

    我为我公司做的网站,整个是用了iframe,Linux带的浏览器都不支持,哎呀,丑呀,不过我还是喜欢用iframe 

    还有iframe可以放在表格里,然后ifame设置成width=100%   height=100%   
      我就可以只需修改我的表格的宽度和高度,这样的话有利于排版  

    其实Frame是一个控件   
      使用方法和Panle相同。 

    frame是把网页分成多个页面的页面。它要有一个框架集页面frameset   
      iframe是一个浮动的框架,就是在你的页面里再加上一个页面, 

    <frame>用来把页面横着或竖着切开,   
      <iframe>用来在页面中插入一个矩形的小窗口 

    Frame一般用来设置页面布局,将整个页面分成规则的几块,每一块里面包含一个新页面.   
      iframe用来在页面的任何地方插入一个新的页面.   
        
      因此,Frame用来控制页面格式,比如一本书,左边是章节目录,右边是正文,正文很长,看的时候要拖动,但又不想目录也被拖动得开不到了.因此最好将页面用Frame分成规则的2页,一左一右.   
        
      而iframe则更灵活,不要求将整个页面划分,你可以在页面任何地方用iframe嵌入新的页面. 

    我个人认为:   
      <frame>用于全页面   
      <iframe>只用于局部 

     iframe和frame的对象:http://www.runoob.com/jsref/dom-obj-frame.html

    frameset对象:http://www.runoob.com/jsref/dom-obj-frameset.html

    原文链接:http://blog.csdn.net/lyr1985/article/details/6067026

    ---------------------------------------------------------------------------------------------

    frameset和iframe框架之间如何互调数据

    以往一直在编写的都是前台的UI,很少使用到frameset、iframe,对其了解也是十分有限,只是知道其可以为其当前页面引入html文件成为当前页的一部分,但是这两天在做后台UI界面的时候,发现这样的框架也是有相当多知识点在里面的。那框架是啥?可以这样说:通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。每份HTML文档称为一个框架,并且每个框架都独立于其他的框架。那么关于框架,有几个方面是需要我了解的:

    (1)获得html页面上的frame

      window.frames可以获得本页面上所有frame集合,用法与document.forms,document.imgs的用法相似,这是这里用的是window对象,获取某个框架可以这样做window.frames[0]、window.frames['frameName']、frames['frameName']、frames[0]、self.frames[0],此处self与window等价,相当于本页面的window对象。

    这里也还要再看两个属性,contentWindow、contentDocument两个属性,也是可以用来获取子窗口,框架的window对象的。

    contentWindow 兼容各个浏览器,可取得子窗口的 window 对象。

    contentDocument Firefox 支持,> ie8 的ie支持。可取得子窗口的 document 对象。

    假如我要刷新本页面中第一个框架的页面,可以怎么做:

    window.frames[0].contentWindow.location.reload();

    (2)父框架调用子框架的变量或函数

    结合上面说的获得页面上的frame,那么调用子框架的变量或是函数可以这样来:

    frames[0].a;
    frames[0].refresh();
    alert(frames[0].location.href);

    这是调用第一个框架里面的a变量和refresh函数。

    (3)子框架调用父框架的变量或函数

    对于子框架调用父框架的这种情况下,window有个属性叫parent,用来调用上层框架的,所以可以这样来:

    window.parent.a;
    window.parent.refresh();

    这是调用子框架调用父框架的a变量和refresh函数。

    (4)兄弟框架之间的调用

     可以通过它们的父框架来相互调用,可以这样做

    self.parent.frames['child1'];
    self.parent.frames['child2'];

    (5)多层框架的调用

    window.frames[0].frames[2];
    window.frames['child_1'].frames['sub_child_3'];

    (6)顶层框架

    首先需要判断是否为顶层框架,也就是根,可以这样来做:

    if(self==window.top){
            //....
    }
    /*window的另外一个属性top,它表示对顶层框架的引用,这可以用来判断一个框架自身是否为顶层框架*/

    7.获得顶部的body

    如何想要获得顶层的body元素,那么可以使用top来获得。

    比如:

    var topBody=$(top.document.body)

    8.获得iframe窗口的外部窗口

    如何想要获得iframe窗口的外部窗口,可以通过:

    var iframe= $('iframe的id', parent.document)

    9.iframe的安全性

    由于iframe可以引用别的网页资源,加载到自己的网页中。这样存在一定的安全隐患。有些网页能够被正常引入到iframe中,有些网页则不可以。观察响应头文件中的X-Frame-Options值。如果X-Frame-Options为SAMEORIGIN的话,那么只有相同域的资源才可以引用该资源到iframe中。

    基本关于frameset和iframe之间的互相调用知识点。

    参考链接:https://i.cnblogs.com/EditPosts.aspx?postid=6169988&update=1

  • 相关阅读:
    闲着写了一个查看股票的程序
    Oracle10g正则表达式
    跨语言平台的RSA加密、解密、签名、验证算法的实现
    Base64转换:AQAB=65537,你知道为什么吗?
    无题
    07年了,新的一年又开始了
    简单生活
    近期关注
    闲话
    各大网站的WEB服务器分析
  • 原文地址:https://www.cnblogs.com/HDK2016/p/6169988.html
Copyright © 2011-2022 走看看