iframe 简介

  1. HTML 元素 <iframe> 表示嵌套的浏览上下文。它能够将另一个 HTML 页面嵌入到当前页面中
  2. 嵌套的浏览器上下文都有自己的 Document,在嵌套的浏览器上下文中,允许 URL 导航
  3. 每个嵌入的浏览器上下文中的导航的动作 都会线性的插入顶级浏览器上下文的 历史会话记录中。
  4. 包含嵌入内容的浏览上下文称为父级浏览上下文。顶级浏览上下文(没有父级)通常是由 Window 对象表示的浏览器窗口。
  5. 内联框架,比如 <iframe> ,会被包含在 window.frames 伪数组中,每个元素都是 window 对象
  6. 使用 dom 获取到 iframe 的 dom 元素对象后,可以使用 contentWindow 属性访问内联框架的 window 对象。
  7. 使用 dom 获取到 iframe 的 dom 元素对象后,可以使用 contentDocument 属性访问内联框架的 document 对象。
  8. 在 iframe 内部,脚本可以通过 window.parent 获取父窗口的引用。(父窗口就是包含 iframe 的窗口)
  9. 脚本访问框架(iframe)内容必须遵守同源策略。脚本无法访问非同源的 window 对象的几乎所有属性(包括框架中的脚本访问框架的父级文档的情况)。跨源通信可以通过 Window.postMessage() 来实现。
  10. iframe 不会触发 error 事件,会一直触发 load 事件,这是特殊处理过的