67-BOM

88 阅读2分钟

BOM

  • 概念:browser object module 。浏览器对象模型,javascriopt将浏览器抽象为一个对象,在这个对象中提供了一系列的api,可以操作浏览器

组成

image-20221227100808170

  • window:浏览器窗口对象
  • location:浏览器url地址对象
  • history:浏览器记录对象
  • screen:屏幕对象
  • navigator:浏览器导航对象
  • document:文档对象

window对象

  • api

    • confirm():确认框,选择之后返回一个值为布尔类型

    • open():打开网页

      open(新开网页地址,"网页打开方式","新开窗口的浏览器大小")
      
      open("https://www.baidu.com","_blank","width=500px,height=500px")
      
    • close():关闭网页

  • 属性

    • innerWidth&innerHeight:当前屏幕的宽度和高度
    • outerWidth&outerrHeight:当前屏幕的宽度和高度(包含导航栏和工具栏)

四大内置对象

location

  • 作为window中的一个对象,本身也是一个对象,内置一些api可以操作页面

获取页面信息

  • location.href:获取当前页面的url地址
  • `location.host:获取当前页面的主机地址
  • location.search:获取页面间的参数传递

页面跳转

  • `location.href:更改属性值进行页面跳转,可以生成一条新的历史记录,可以回退
  • location.assign():跳转到新页面,可以生成一条新的历史记录,可以回退
  • location.replace():跳转到新页面,替换当前历史记录,不能回退

页面刷新

  • location.reload():控制页面刷新

处理页面传递数据

let user = {hobby:[]};
//获取页面传递数据
let data = location.search
//转译中文字符
data =  decodeURIComponent(data)
//处理字符串数据
//1.去掉?号
data =  data.substring(1)
//2.去掉&符号 转数组
let arr =  data.split("&")
//3.将数组中的每个数组进行等号分割
arr.forEach(item=>{   
// console.log(item);   
let arr2 =  item.split("=") 
// console.log(arr2); 
let prop = arr2[0]   
let value = arr2[1]  
console.log(prop,value);   
// user[prop] = value   

if(prop=="hobby"){     
    user.hobby.push(value)  
}else{       
    user[prop] = value   
}
})

history

  • 负责页面前进、后退、历史记录的读取

    • history.forward():前进一步
    • history.back():后退一步
    • history.go():需要传入一个数字,表示前进或后退的具体步数,正值为前进,负值为后退

navigator

  • 保存浏览器版本相关信息

    • navigator.userAgent:浏览器版本信息

screen

  • 保存浏览器的屏幕相关信息,但是本身存在兼容性问题,所以实用性不强