BOM
- 概念:browser object module 。浏览器对象模型,javascriopt将浏览器抽象为一个对象,在这个对象中提供了一系列的api,可以操作浏览器
组成
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
- 保存浏览器的屏幕相关信息,但是本身存在兼容性问题,所以实用性不强