建议学习时长: 20分钟
学习方式:了解
学习目标
- 了解什么是BOM
- 了解BOM的常用方法
详细介绍
BOM是 browser object model(浏览器对象模型)的缩写。
BOM提供了独立于内容而与浏览器窗口进行交互的对象,主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。
常用方法
浏览器相关信息
// 浏览器信息
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.forward()
// 后退
history.back()
url 信息
页面跳转
// 当前页面会记入浏览记录历史
location.href = 'http://www.baidu.com'
// 当前页面不会记入浏览记录历史
location.replace('http://www.baidu.com')
页面重新加载
location.reload()
获得当前 url 的信息
// 假设当前 url 是 http://192.168.31.194:8000/jquery/index.html?a=3&c=aa#b
location.href // 完整的url
location.hostname // 192.168.31.194
location.host // 192.168.31.194:8000
location.port // 8000
location.protocol // http:
location.search // ?a=3&c=aa
location.hash // #b
location.pathname // /jquery/index.html
全局对象
信息弹出框
alert('你很帅!')
确认弹出框
var isReady = confirm('准备好来吗?')
if (isReady) {
} else {
}
输入信息弹出框
var name = prompt('请输入你的名字')
console.log(name)
打开一个新窗口
open('http://baidu.com')
// 改变某个窗口的 url
open('http://baidu.com', 'a')
open('http://youku.com', 'a') // 上面窗口的地址会从 百度 变成 优酷的
过段时间后执行
// 1 秒后执行
setTimeout(function() {
// doSth
}, 1000)
每隔一段时间执行
var i = 1
// 每隔 1 秒后执行
var runId = setInterval(function(){
console.log(i++)
if(i >= 10) {
clearInterval(runId) // 停止执行
}
}, 1000)
屏幕每次刷新时执行
一般是渲染一些 UI。
var targetEl = document.querySelector('.tar')
var res
var isStop
var runId = requestAnimationFrame(function(){
targetEl.text(res)
if(isStop) {
cancelAnimationFrame(runId)
}
})
在控制台输出信息
console.log('日志信息')
console.warn('警告信息')
console.info('普通信息')
console.error('错误信息')
console.log('1+2 = %d', 3)
var person = {name: 'Joel', gender: '男'}
console.log('名字:%s,性别:%s', person.name, person.gender)
console.trace() // 代码在堆栈中的调用路径