Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

翻译正在进行中。

概述

HTML中的<iframe>标签(又称内联框架元素)表示了一个嵌套的浏览上下文(browsing context),实际上是用来在当前页面中内嵌另一个HTML页面。在HTML4.0.1中,文档(document)可以包含一个head和一个body组合或者包含一个head和一个框架集(frame-set)组合,但不能同时包含bodyframe-set。然而<iframe>标签可以插入到一个正常的文档体中(document body)。每个浏览上下文(browsing context)都有自己的会话历史和活动文档。包含其它嵌入内容的浏览上下文(browsing context)称作父级浏览上下文(parent browsing context)。顶层(top-level)浏览上下文(不再拥有父窗体的)一般就是浏览器的window对象。

属性

该元素包含全局属性

align 已废弃 HTML4.01, 已废弃 HTML5
The alignment of this element with respect to the surrounding context.
frameborder HTML 4 only
The value 1 (the default) tells the browser to draw a border between this frame and every other frame. The value 0 tells the browser not to draw a border between this frame and other frames.
height
以CSS像素格式HTML5,或像素格式HTML 4.01,或百分比格式指定frame的高度。
longdesc HTML 4 only
A URI of a long description of the frame. Due to widespread misuse, this is not helpful for non-visual browsers.
marginheight HTML 4 only
框架内容到框架的上下边距,以像素格式表示。
marginwidth HTML 4 only
框架内容到框架的左右边距,以像素格式表示。
mozallowfullscreen
In Gecko 9.0 or later, this attribute can be set to true if the frame is allowed to be placed into full screen mode by calling its element.mozRequestFullScreen() method. If this isn't set, the element can't be placed into full screen mode.
webkitallowfullscreen
In Chrome 17 or later (and maybe earlier), this attribute can be set to true if the frame is allowed to be placed into full screen mode by calling its element.webkitRequestFullScreen() method. If this isn't set, the element can't be placed into full screen mode.
mozapp Only available on Firefox OS
For frames hosting an open web app, this specifies the URL of the app manifest. This ensures that the app is loaded with the right permissions. See Using the Browser API for details. Available in Gecko 13.0 and later.
mozbrowser Only available on Firefox OS
Indicates that the frame is to appear like a top-level browser window to the embedded content. This means that window.top, window.parent, window.frameElement, etc. will not reflect the frame hierarchy. This allows for a web browser UI to be implemented entirely with web technology, given the right permissions. See Using the Browser API for details. Available in Gecko 13.0 and later.
name
嵌入的浏览上下文(框架)的名称。该名称可以用作<a>标签,<form>标签的target属性值,或<input> 标签和 <button>标签的formtaget属性值。
remote Only available on Firefox OS
Load the frame's page in a separate content process.
scrolling HTML 4 only
Enumerated attribute indicating when the browser should provide a scroll bar (or other scrolling device) for the frame:
  • auto: Only when needed.
  • yes: Always provide a scroll bar.
  • no: Never provide a scoll bar.
sandbox HTML5 only
如果指定了空字符串,该属性对呈现在iframe框架中的内容启用一些额外的限制条件。属性值可以是用空格分隔的一系列指定的字符串。有效的值有:
 
  • allow-same-origin: 允许将内容作为普通来源对待。如果未使用该关键字,嵌入的内容将被视为一个独立的源。
  • allow-top-navigation:嵌入的页面的上下文可以导航(加载)内容到顶级的浏览上下文环境(browsing context)。如果未使用该关键字,这个操作将不可用。
  • allow-forms: 允许嵌入的浏览上下文可以提交表单。如果该关键字未使用,该操作将不可用。
  • allow-scripts: 允许嵌入的浏览上下文运行脚本(但不能window创建弹窗)。如果该关键字未使用,这项操作不可用。

注意:

  • 当被嵌入的文档与主页面同源时,强烈建议不要同时使用 allow-scripts 和allow-same-origin ,否则的话将允许嵌入的文档通过代码删除 sandbox 属性。虽然你可以这么做,但是这样的话其安全性还不如不用sandbox。
  • 如果攻击者可以将潜在的恶意内容往用户的已沙箱化的iframe中显示,那么沙箱操作的安全性将不再可靠。推荐把这种内容放置到独立的专用域中,减小可能的损失。[Sandboxing in general is only of minimal help if the attacker can arrange for the potentially hostile content to be displayed in the user's browser outside a sandboxed iframe. It is recommended that such content should be served from a separate dedicated domain, to limit the potential damage.]
seamless HTML5 only
该布尔属性指示浏览器将iframe渲染成容器页面文档的一部分。例如,通过打被包含的文档的链接,在iframe页面的样式被渲染之前,父页面的CSS样式就可以应用在iframe中(除非被其他设置阻止)。
src
嵌套页面的URL地址。.
srcdoc HTML5 only
该属性值可以是HTML代码,这些代码会被渲染到iframe中,如果同时指定了src属性,srcdoc会覆盖src所指向的页面。该属性最好能与sandbox和seamless属性一起使用。
width
以CSS像素格式HTML5,或以像素格式HTML 4.01,或以百分比格式指定frame的宽度。

脚本

内联的框架,就像 <frame> 元素一样,会加入 window.frames 伪数组中。

通过contentWindow属性,脚本可以访问iframe元素所包含的HTML页面的window对象。contentDocument属性则引用了iframe中的文档元素(等同于使用contentWindow.document),但IE8-不支持。

通过访问window.parent,脚本可以从框架中引用它的父框架的window。

脚本试图访问的框架内容必须遵守同源策略,并且无法访问非同源的window对象的几乎所有属性。同源策略同样适用于子窗体访问父窗体的window对象。跨域通信可以通过window.postMessage来实现。

案例

<script type="text/javascript">
  var iframe = window.getElementsByTagName( "iframe" )[ 0 ];
  alert( "Frame title: " + iframe.contentWindow.title );
</script>


<iframe src="page.html" width="300" height="300">
  <p>Your browser does not support iframes.</p>
</iframe>

Notes

Gecko 6.0 note
(Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)

Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), rendering of inline frames correctly respects the borders of their containing element when they're rounded using border-radius.

说明

Specification Status Comment
WHATWG HTML Living Standard
<iframe>
Living Standard  
HTML5
<iframe>
Recommendation  
HTML 4.01 Specification
<iframe>
Recommendation  

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 1.0 (Yes) (Yes) (Yes) (Yes)
sandbox 4 17.0 (17.0) 10.0 15.0 5.0
seamless 4 未实现 ? ? ?
srcdoc 4 未实现 ? ? ?
allowfullscreen 17 webkit 9.0 (9.0) moz 未实现 未实现 未实现
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
sandbox 2.2 17.0 (17.0) 10.0 37 4.3
seamless ? 未实现 ? ? ?
srcdoc ? 未实现 ? ? ?
allowfullscreen ? 9.0 (9.0)moz 未实现 未实现 未实现
HTML元素
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
(快速链接 HTML Category)

文档标签和贡献者

 此页面的贡献者: Sivan, ReyCG_sub, ziyunfei, manjun.han, Josephok, ZhangJianxiang
 最后编辑者: Sivan,