Bom 随笔

136 阅读2分钟

BOM

javascript 的组成部分

  • DOM (document object model) 文档对象模型
  • BOM (browers object model) 浏览器对象模型
  • ECMAScript js 的核心

BOM 五大对象

window 对象

window 包含了当前页面的所有js对象方法

  • innerWidth/innerHeight

    • 浏览器窗口的视口(viewport)高度(以像素为单位);如果有水平滚动条,也包括滚动条高度。--mdn
  • open 方法 window.open(URL,target,specs,replace)

    • URL 新窗口地址
    • target 属性 新窗口打开方式
      • _blank
      • _self
    • specs 新窗口规格(不太常用,很多方法不兼容)
      • width=pixels 新窗口的宽度.最小值为100
      • height=pixels 新窗口的高度。最小值为100
      • location=yes|no|1|0 是否显示地址字段.默认值是yes
      • menubar=yes|no|1|0 是否显示菜单栏.默认值是yes
      • resizable=yes|no|1|0 是否可调整窗口大小.默认值是yes
      • scrollbars=yes|no|1|0 是否显示滚动条.默认值是yes
      • status=yes|no|1|0 是否要添加一个状态栏.默认值是yes
      • titlebar=yes|no|1|0 是否显示标题栏.被忽略,除非调用HTML应用程序或一个值得信赖的对话框.默认值是yes
      • toolbar=yes|no|1|0 是否显示浏览器工具栏.默认值是yes
  • close 方法关闭窗口

  • scroll 事件

  • resize 事件 改变窗口大小时候触发

  • 操作滚动条位置

    • window.scrollX、window.scrollY、获取滚动条的位置
    • window.scrollTo() 设置滚动条的位置
    • window.onload()
    • document.documentElment.scrollTop、document.documentElment.scrollLeft
  • window 下的各类弹窗

    • alert()
    • confirm('message')
    • prompt([msg],[defaultText])

location 对象

地址栏信息

  • hostname

  • port

  • protocol

  • href 网址

  • hash 哈希值--地址栏后面#+xxx xxx是哈希值,

    • 取值时候可以把#截取了再使用
    • hashChange事件,监听地址栏hash值的变化而触发的一个方法
  • search() 地址栏后面?+xxx xxx是搜索值,

    • search 值的解析,转换成对象的一个思考

       // {a:1,b:2}
      var arr = location.search.substring(1).split('&');
      
      console.log(arr)
      
      var obj ={};
      arr.forEach(function(item,index){
          // "a=1"
          // ['a','1']
          var subArr = item.split('=');
          obj[subArr[0]] = subArr[1];
      })
      
      console.log(obj);
      
  • location.reload() 重新加载

  • replace()

history 对象

  • back()、回退,返回上一页
  • forward() 历史记录前进
  • go(n)
    • n表示跳转到指定的第几层的历史纪录
    • 正值往前,负值往后
  • state
  • pushState()
  • popstate
    • history 路由实现原理

navigator 对象

  • userAgent
    • 浏览器版本
    • 操作系统
    • 用于做兼容处理
    • 更多
  • appName
    • 浏览器的内核名称
  • appVersion
    • 浏览器的版本

screen 对象

终端设备的整体信息

​ screen.width 设备宽度

​ screen.height 设备高度

​ 思考:做登录遮罩的时候,把半透明的遮罩的尺寸做到设备宽高也是合适