20180208-读HTML规范

概念

  1. browsing context : 浏览器环境,是 展示给用户的 Document 所在的环境。
    • 浏览器的 tab 或者 window 窗口,以及 iframe 和 frameset 中的 frame 都有一个这样的环境。
    • 每个 browsing context 都有一个对应
    • 的关联的 WindowProxy 对象。
    • 每个 browsing context 有自己的 session history ,包含了 browsing context 所含有的 Document.
    • browsing context 的 active document 是他的 WindowProxy 的内部 Window 插槽的关联文档 associated Document.
    • 如果一个 browsing context 的 session history 中包含了某个 Document ,那么他就是该 Document 的 browsing context.
  2. WindowProxy : 这是一个包含了 window 对象的特异对象。当 browsing context 被导航时,browsing context 的关联 windowProxy 所包含的 window 也随之发生变化
    • 每个 windowProxy 都有一个内部的插槽( [[Window]] internal slot ),用来呈现 window 对象。
    • 一般而言,一个 window 有一个 Document, 但是当在一个窗口中进行了导航时,window 到 document 的映射变为 1 to many。当 使用了 document.open() 打开了新的 window 后,映射变为 many to 1.
    • 注意: 根据我的理解,这里的 Document 并非和某个 html 文件等价。而是作为其包含对象。也就是说,如果某个 html 文件变了,但是页面没有刷新,那么其包含 Document 对象依然没有变。
  3. Nested browsing contexts : 一些特定的元素(比如: iframe)能初始化更多的 browsing context, 这些元素被称为 browsing context containers
    他们有一个Nested browsing contexts 属性,其值为 browsing context 或者 null
  4. Auxiliary browsing contexts : 可以创建一个新的 top-level browsing context (比如通过document.open())。这样也会随之创建新的 window 对象.新创建的 window 对象 有一个 opener 属性,用于指向创建他的 browsing context 的 WindowProxy.
    一般来说,会将新创建的 window 的 opener 属性设置为 null, 不然新的 window 中的脚本可以通过 window.opener 取得之前的 window ,并对其做出更改。

属性

  1. window . top : 返回最顶级的 top-level browsing context 的 WindowProxy 对象
  2. window . parent : 返回当前 browsing context 的 parent browsing context 的 WindowProxy 对象。
  3. window.frameElement : 返回作为当前页面的browsing context 的 browsing context container 的 Element. 例如: 某个页面在 iframe 中打开,则在其中的 js 代码中使用 window.frameElement,就能获取到父页面的 iframe 元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值