1. window对象:BOM的核心对象,表示浏览器的一个实例。
在浏览器中,window对象有两个角色:① 通过Js访问浏览器窗口的一个接口 ② ECMAScript规定的Global对象。
因为window对象扮演着Global对象的角色,因此在全局作用域中声明的变量、函数都会变成window对象的属性和方法。
但
但,定义全局变量和在window对象上直接定义属性是有区别的。
区别:定义全局变量不能用delete操作符删除(因为使用var定义的属性的[[configurable]]特性值为false,代表不可以通过delete删除属性来重新定义属性,不能修改属性的特性,不可以把属性改为访问器属性),而在window对象上直接定义属性可以用delete操作符删除。
尝试访问未声明的变量会抛出错误,而通过window对象来查询某个变量是否存在。
2. window对象的窗口位置的修改
screenLeft、screenTop属性(IE、Safari、Opera、Chrome),用来表示窗口相对于屏幕左边和上边的位置。
screenX、screenY属性(Firefox、Safari、Chrome)
如下代码可以跨浏览器取得窗口左边和上边的位置。
moveTo()和moveBy()可以将窗口移动到精确的位置。moveTo接收两个参数,新位置的x和y的坐标值。moveBy接收两个参数,窗口在水平和处置方向上移动的像素数。
这两个方法只适用于最外层的window对象,而且可能被浏览器禁用。
3. location对象:BOM对象,它提供了当前窗口中加载的文档有关的信息。
location对象的属性:
其中URL为:http://www.baidu.com:80/news/index.aspx?id=1&name=location#top
属性:hash-----返回URL中的hash,如果URL不包含散列,则返回空字符串-----#top
host-----服务器名称和端口号-----www.baidu.com:80
hostname-----返回不带端口号的服务器名称-----www.baidu.com
href-----返回当前加载页面的完整URL-----http://www.baidu.com
pathname-----返回URL中的目录名或文件名-----news/index.aspx
port-----返回URL中指定的端口号-----8080
protocol-----返回页面使用的协议(一般是http:或者https:)-----http:
search-----返回URL的查询字符串-----?id=1&name=location#top
如果该页面的location.search为?id=1&name=location#top,则args{id:1,name:location#top};
4. navigator对象:用来识别浏览器的类型