一、BOM对象模型
当用户在浏览器中打开一个页面时,浏览器就会自动创建一些对象,因为这些对象存放了浏览器窗口的属性和其他相关信息,被称为浏览器对象。浏览器对象模型BOM描述了这些层次化对象的关系,window是BOM对象模型的顶级对象,其下一层是documen、navigator、frames、history和screen对象。document下一层是form、anchor、link、cookie、image等对象的集合。每个层次上的对象都是其父对象的属性,可以通过“父对象.子对象”的方式访问,如window.document,即document对象是window对象的属性。
1、BOM的主要对象描述
属性 | 描述及用途 |
---|
window | 窗体对象,表示浏览器中打开的窗口。若HTML文档包含框架(frame),浏览器会为每个框架创建一个额外的window对象,是BOM的顶层对象 |
document | 每个载入浏览器的HTML文档。利用document可以实现对HTML页面中的所有元素进行访问 |
navigator | 浏览器对象,包含有关浏览器的信息,例如,浏览器名称,厂商,版本等。 |
screen | 客户端显示器对象,包含有关显示浏览器屏幕的信息,例如高度,宽度,色彩等。运用这些信息可以优化显示效果,实现用户的显示要求。 |
history | 历史对象,记录在浏览器窗口中访问过的URL |
location | 浏览器窗口中当前文档的URL |
frames | 窗口中所有命名的框架,是window对象的数组 |
二、BOM常用属性
1.window属性
alert()、 prompt()、setInterval()、setTimeout()等方法,
都是挂载在window对象上的全局方法alert(“1”)等同于window.alert(“1”)
window可省略
声明在最外层的变量为全局变量
var a ='global'
function foo( ) {
console.log( a)
}
将变量挂载到window对象上即为全局变量
function test( ) {
window.a = 'global'
}
function foo( ) {
test( )
console.log( window.a )
}
如果需要声明全局变量,尽量选择在最外层var 变量名
的方式声明,也可以使用window.变量名
的方式,但尽量不要使用隐式声明。
window.open(url,name,param)
方法
2.location对象
操作当前窗口的地址信息
属性 | 说明 |
---|
href | 返回当前窗口的完整url地址,可通过修改值达到页面跳转的目的 |
host | 返回当前窗口的主机名 |
pathname | 返回资源路径地址,即主机名后面的部分 |
port | 返回端口,常见端口如HTTP端口80,HTTPS端口为443 |
3.navigator对象
运行当前代码的客户端浏览器的相关信息
属性 | 说明 |
---|
userAgent | 用户代理信息,包含操作系统、浏览器内核、浏览器版本、CPU类型等 |
onLine | 是否连接了因特网 |
cookieEnabled | 是否启用cookie |
language | 浏览器主语言 |
4.screen对象
属性 | 说明 |
---|
width、height | 屏幕宽高 |
availWidth、availHeight | 屏幕可用宽高(不包含任务栏) |
5.history对象
当前窗口的浏览历史记录
方法 | 说明 |
---|
back() | 后退一页 |
forward() | 前进一页 |
go() | 跳转转指定页面 |