Fe-15 BOM

作者: 吕阳 | 来源:发表于2018-01-09 12:40 被阅读5次

    BOM(browser object model) 是什么 有什么用
    HTML5 新增的 BOM API 和新功能
    单页应用(SPA(single page application))

    15-1

    BOM(browser object model) 包含5个东西
    location 管理 URL
    navigator 管理浏览器
    history 管理历史记录
    screen 管理屏幕
    window 管理浏览器所有的东西

    • location 对象是用来管理 URL 的, 下面是例子
      改变 href 属性就可以跳转页面
    hash: ""
    host: "s.taobao.com"
    hostname: "s.taobao.com"
    href: "https://s.taobao.com/search?q=3ds&imgfile=&js=1&stats_click=search_radio_all&ie=utf8"
    search: "?q=3ds&imgfile=&js=1&stats_click=search_radio_all&ie=utf8"
    origin: "https://s.taobao.com"
    pathname: "/search"
    port: ""
    protocol: "https:"
    

    reload: 函数, 刷新当前页面
    replace: 函数, 替换当前页面, 有参数

    • avigator 对象是用来查询浏览器的信息的
      比如当前的操作系统平台, 浏览器型号厂商等等
      例如
    navigator.userAgent
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
    navigator.platform
    "MacIntel"
    
    • history 对象是用来处理历史纪录的
      在 HTML5 它增加了一些 API 使得它也可以做单页应用(SPA, single page app)
    history.length      // 历史列表中的 url 数量
    
    history.back()      // 相当于点击后退按钮
    history.forward()   // 相当于点前进
    history.go(-2)      // 相当于点击两次后退按钮
    
    • 下面是 HTML5 新函数
    history.pushState(null, 'title', "/profile")
    
    • 三个参数分别是
      自定义对象
      新页面的标题, 但是现在还没有浏览器实现这个功能
      新页面的地址
    var state = {
        page: "settings"
    }
    history.pushState(state, "settings", "/settings")
    

    用户点击 前进 后退 按钮的时候, 会触发 window 的 popstate 事件
    于是可以在这里操作

    window.addEventListener("popstate", function(e) {
        var state = e.state;
        // state 就是 pushState 的第一个参数
        console.log('pop state', state)
    })
    

    还有一个 replaceState 函数, 它的作用和 pushState 一样, 只是不生成一条历史纪录

    • 其他
      只能在相同域名下
      可以使用 queryString
      主要作用是来做 SPA

    SPA todo

    相关文章

      网友评论

          本文标题:Fe-15 BOM

          本文链接:https://www.haomeiwen.com/subject/fxuwnxtx.html