1、window对象
bom的核心对象是window,表示浏览器的一个实例。在浏览器中,window对象有双重角色,既是通过javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。即在网页中定义的任何一个对象、变量和函数,都以window作为其Global对象。
差异:全局变量不能通过delete操作符删除,直接在window对象上定义的属性可以。
1.1 窗口关系及框架
页面中包含框架时,每个框架都拥有自己的window对象,并且保存在frames集合中。在frame集合中,可能通过数值索引(从0开始,从左至右,从下至下)或者框架名称来访问相应的window对象。每个window对象都有一个name属性,其中包含框架的名称。
包含top,parent,self
1.2 窗口属性
- 位置:screenLeft,screenTop,screenX,screenY
- 大小:innerWidth,innerHeight,outerWidth,outerHeight
outerWidth,outerHeight返回浏览器本身的尺寸。innerWidth,InnerHeight返回容器中页面视图区的大小(减去边框宽度)
也可以通过document.documentElement.clientWidth和document.documentElement.clientHeight(标准模式下)
或者document.body.clientWidth和document.body.clientHeight(混杂模式下)获取
1.3 打开窗口
window.open(URL, name, spec, replace)
URL | 可选。打开指定的页面的URL,如果没有指定URL,打开一个新的空白窗口 |
name | 可选。支持的值有 _blank:URL加载到一个新的窗口,这是默认 _parent:URL加载到父框架 _self:URL替换当前页面 _top:URL替换任何可加载的框架集 name:窗口名称 |
specs | 可选。一个逗号分隔的项目列表。支持以下值 fullscreen: yes|no 表示浏览器窗口是否最大化。 height:数值,表示新窗口的高度。不能小于100 left:数值。表示新窗口的左坐标。不能是负值 location:yes|no。表示是否在浏览器窗口中显示地址栏。默认no menubar:yes|no。表示 是否在浏览器窗口中显示菜单栏。默认no resizable:yes|no。表示是否可以通过拖动浏览器窗口的边框改变其大小。默认no scrollbars:yes|no.表示如果内容在视口中显示不下,是否允许滚动。默认no status:yes|no。表示是否在浏览器中显示状态栏。默认no toolbar:yes|no.表示是否在浏览器中显示工具栏。默认no top:数值。表示新窗口的上坐标。不能是负值 width:数值。表示新窗口的宽度。不能小于100 |
replace | 规定装载到窗口的URL是在窗口的浏览历史上创建一个新条目,还是替换浏览历史中的当前条目。支持的值 true:URL替换浏览历史中的当前条目 false:URL在浏览历史中创建新的条目 |
2、location对象
location提供了与当前窗口中加载的文档相关的信息,还提供了一些导航功能。既是window对象的属性,也是document对象的属性
支持的属性
hash | “#contents" | 返回URL中的 hash(#号后跟零或多个字符),如果URL中不包含散列,则返回空字符串 |
host | "www.wrox.com:80" | 返回服务器名称和端口号(如果有) |
hostname | ”www.wrox.com" | 返回不带端口号的服务器名称 |
href | “http://www.wrox.com" | 返回当前加载页面的完整URL。 |
pathname | ”/WileyCDA" | 返回URL中的目录和文件名 |
port | “8080” | 返回URL中指定的端口号。如果不包含端口号,则返回空字符串 |
protocol | “http:" | 返回页面使用的协议 |
search | ”?q=javascript" | 返回URL的查询字符串。这个字符串以问号开头 |
3、Navigator对象
支持的属性
appCodeName | 浏览器的名称 |
appName | 完整的浏览器名称 |
appVersion | 浏览器的版本 |
platform | 浏览器所在的系统平台 |
product | 产品名称 |
productSub | 关于产品的次要信息 |
userAgent | 浏览器的用户代理字符串 |
vendor | 浏览器的品牌 |
vendorSub | 有关供应商的次要信息 |
taintEnabled() | 已经废弃。表示是否允许变量被修改 |
oscpu | 客户端计算机的操作系统或使用的 CPU |
language | 浏览器的主语言 |
onLine | 表示浏览器是否连接到了因物网 |
registerProtocolHandler() | 针对特定的协议将一个站点注册为处理程序 |
registerContentHandler() | 针对特定的MIME类型将一个站点注册为处理程序 |
cookieEnabled | 表示cookie是否启用 |