8. BOM
五大BOM对象:
- window
- location
- screen
- history
- navigator
8.1 window对象
- BOM的核心对象就是
window- JavaScript访问浏览器窗口的一个接口
- ECMAScript规定的Global对象
- 全局作用域中定义的变量和函数都会成为
window对象的属性和方法- 删除问题
var定义全局变量不能通过delete操作符删除- 而直接在window对象上定义的属性可以
- 因为
var添加的window属性的[[configurable]]特性的值为false
- 未定义问题
- 如果一个变量未定义,全局访问会报错
- 如果以window属性访问则返回undefined
- 删除问题
var name = "hello world";
window.anotherName = "hello javascript";
delete window.name; // false 无法删除
delete window.anotherName; // true
console.log(anyWord); // not defined
console.log(window.anyWord); // undefined
- 窗口位置
- screenTop & screenLeft
- 窗口大小
- innerWidth,innerHeight & outerWidth, outerHeight
- clientHeight, clientWidth
- 导航和打开窗口
window.open(url)- 第二个参数可以是窗口或框架名
- _self, _parent, _top, _blank
- 第三个参数是逗号分隔的名值对儿
"height=400,width=400,top=100,left=100,resizable=yes"
- 间歇调用和超时调用
setTimeoutsetInterval- 接收要执行的字符串,在全局作用域中执行
- 系统对话框
alertconfirmpromptfindprint
8.2 location对象
location对象- window.location和document.location引用的是同一个对象
hashhosthrefpathnamehostnameportprotocolsearch- “?language=javascript&number=4” 解析url字符串得到参数
- 位置操作
window.location = 'http://www.baidu.com'赋值字符串,返回对象,神奇!window.location.href = "http://www.baidu.com"- 每次修改location的属性(除hansh外),页面都会重新加载URL
- 浏览器会计入历史记录
replace不会记入历史记录reload重新加载当前页面reload()从缓存加载reload(true)从服务器重新加载
8.3 navigator对象
navigator对象- 浏览器、电脑、cpu等客户端信息
- 插件 plugins
- 注册处理程序 registerContentHandler
8.4 screen对象
screen对象- availHeight
8.5 history对象
history对象history.go(-1)back()和forward()length检测是否是用户历史记录中的第一个页面length == 0

京公网安备 11010502036488号