)# 用 JS 去操作浏览器 和 页面中的 HTML 元素(BOM)
1.认识BOM
- 浏览器对象模型, 其实就是操作浏览器的一些能力
- 我们可以操作那些内容?
- 获取浏览器的相关信息(窗口大小)
- 操作浏览器进行页面的跳转
- 获取浏览器地址栏的信息
- 操作浏览器的滚动条
- 获取浏览器的版本
- 让浏览器出现一个弹出框
- ....
- BOM 的核心就是 window 对象
- window 是 JS 内置的一个对象, 里面包含着操作浏览器的方法
console.log(window)
- window 是 JS 内置的一个对象, 里面包含着操作浏览器的方法
2.体验BOM
- 获取浏览器窗口的尺寸
innerHeight / innerWidth
- 作用: 获取浏览器窗口的高度和宽度(包含滚动条)
console.log('高度', window.innerHeight)
console.log('宽度', window.innerWidth)
- 浏览器的弹出层 (学习的时候会用, 实际工作中不会使用)
- alert
- prompt
- confirm
- 有一个询问信息和两个按钮
- 点击确定按钮 返回 true
- 点击取消按钮 返回 false
var boo = confirm('请问您确定进入页面吗?')
console.log(boo)
- 浏览器的地址信息 在 window 中, 有一个 对象 叫做 location, 他是专门用来存储浏览器地址栏内的信息
- 1.1 location
- 这个对象中, 有一个属性叫做 href
- 这个属性是专门存储浏览器地址栏内的 url 地址的信息
- 我们也可以给这个属性赋值, 这样就会跳转到我们赋值的地址了
- 这个对象中, 有一个方法叫做 reload
- 这个方法调用时会重新加载页面, 相当于 刷新
- 注意!!! 不要直接写在代码中, 否则浏览器会一直刷新
// 1.1 location
tTimeout(function () {
window.location.href = 'https://www.baidu.com/'
}, 3000)
// 1.2 reload
var count = 0
setInterval(function () {
count++
console.log(count)
if (count === 5) {
window.location.reload() // 不能直接写在 代码中
}
}, 1000)
- 浏览器的历史记录 window 对象中 有一个叫做 history 他专门用来存储历史记录信息
history.back
- 专门用来回退历史记录, 就是回到前一个页面, 相当于浏览器左上角的 ← 按钮
- 注意: 我们需要有上一条记录, 否则不能使用这个方法
- 语法:
window.history.back()history.forward - 是去到下一个历史记录里面, 也就是去到下一个页面, 相当于浏览器左上角的 → 按钮
- 注意: 我们需要之前有过回退操作, 不然无法使用这个方法
- 语法:
window.history.forward()
3.BOM事件
- 浏览器的版本信息(了解)
- window 中的
navigator可以获取到浏览器的信息
- 浏览器的 onload 事件
- 这个事件会在页面所有资源加载完毕后执行
window.onload = function () {
我们的 JS 代码全部书写在这个函数内部
}
- 在浏览器中, 把 JS 写在 head 中, 在 JS 加载时, 下边的 body标签还没来得及加载,可能会导致我们获取body内部的标签, 比如说 div 或者 img, 出现问题获取不到,如果把代码放在 onload 中, 则不会出现这个问题
- 如果把 JS 写在 body 底部, 写不写 onload 都无所谓
- 浏览器的 onscroll 事件
- 当浏览器的滚动条滚动时会触发该事件, 或者鼠标滚轮滚动时触发(前提是有滚动条)
- 浏览器的滚动距离
- 浏览器的内容可以滚动, 那么我们就能获取到浏览器的滚动距离
- 思考