BOM是Browser Object Model的缩写,简称浏览器对象模型。BOM提供了独立于内容而与浏览器窗口进行交互的对象 · 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window · BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。
BOM提供了一些访问窗口对象的一些方法,:1.我们可以用它来移动窗口位置,改变窗口大小,打开新窗口和关闭窗口,弹出对话框,进行导航以及获取客户的一些信息如:浏览器品牌版本,屏幕分辨率。BOM最强大的功能是它提供了一个访问HTML页面的一入口——document对象。
window子对象有:document 对象 、 frames 对象、 history 对象、location 对象 、navigator 对象、screen 对象。
window对象的方法:
窗口操作:
moveBy(x,y)——从当前位置水平移动窗体x个像素,垂直移动窗体y个像素,x为负数,将向左移动窗体,y为负数,将向上移动窗体 moveTo(x,y)——移动窗体左上角到相对于屏幕左上角的(x,y)点,当使用负数做为参数时会吧窗体移出屏幕的可视区域。
resizeBy(w,h)——相对窗体当前的大小,宽度调整w个像素,高度调整h个像素。如果参数为负值,将缩小窗体,反之扩大窗体 。
resizeTo(w,h)——把窗体宽度调整为w个像素,高度调整为h个像素 。
新建窗口
open()——打开(弹出)一个新的窗体 close()——关闭窗口。
opener属性——新建窗体中对父窗口的引用。
open方法返回值为一个新窗体的window对象的引用
窗口滚动轴控制
scrollTo(x,y)——在窗体中如果有滚动条,将横向滚动条移动到相对于窗体宽度为x个像素的位置,将纵向滚动条移动到相对于窗体高度为y个像素的位置 。
scrollBy(x,y)—— 如果有滚动条,将横向滚动条移动到相对于当前横向滚动条的x个像素的位置(就是向左移动x像素),将纵向滚动条移动到相对于当前纵向滚动条高度为y个像素的位置(就是向下移动y像素) 。
窗口焦点控制
focus()—— 使窗体或控件获取焦点 。
blur()——与focus函数相反,使窗体或控件失去焦点。
对话框
alert(str)—— 弹出消息对话框(对话框中有一个“确定”按钮) confirm(str)—— 弹出消息对话框(对话框中包含一个“确定”按钮与“取消”按钮)
prompt(str,defaultValue)——弹出消息对话框(对话框中包含一个“确定”按钮、“取消”按钮与一个文本输入框),由于各个浏览器实现的不同,若没有第二个参数(文本框中的默认值)时也最好提供一个空字符串
状态栏
window.defaultStatus 属性——改变浏览器状态栏的默认显示(当状态栏没有其它显示时),浏览器底部的区域称为状态栏,用于向用户显示信息
window.status 属性——临时改变浏览器状态栏的显示
时间等待与间隔函数
setTimeout()—— 暂停指定的毫秒数后执行指定的代码
clearTimeout()——取消指定的setTimeout函数将要执行的代码 setInterval()——间隔指定的毫秒数不停地执行指定的代码
clearInterval()——取消指定的setInterval函数将要执行的代码
setTimeout与setInterval方法有两个参数,第一个参数可以为字符串形式的代码,也可以是函数引用,第二个参数为间隔毫秒数,它们的返回是一个可用于对应clear方法的数字ID
History 对象的属性:length 返回浏览器历史列表中的 URL 数量
History 对象的方法 ·
back() 加载 history 列表中的前一个 URL ·
forward() 加载 history 列表中的下一个 URL
go(num) 加载 history 列表中的某个具体页面
Location 对象
Location 对象的属性:
hash 设置或返回从井号 (#) 开始的 URL(锚)
host 设置或返回主机名和当前 URL 的端口号
hostname 设置或返回当前 URL 的主机名
href 设置或返回完整的 URL
pathname 设置或返回当前 URL 的路径部分
port 设置或返回当前 URL 的端口号
protocol 设置或返回当前 URL 的协议
search 设置或返回从问号 (?) 开始的 URL(查询部分)
Location 对象的方法 ·
assign() 加载新的文档,这与直接将一个URL赋值给Location对象的href属性效果是一样的 f
reload() 重新加载当前文档,如果该方法没有规定参数,或者参数是 false,它就会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变,reload() 会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。如果把该方法的参数设置为 true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样。 · replace() 用新的文档替换当前文档,replace() 方法不会在 History 对象中生成一个新的纪录。当使用该方法时,新的 URL 将覆盖 History 对象中的当前纪录。
Navigator 对象的属性:
· appCodeName 返回浏览器的代码名 · appName 返回浏览器的名称
· appVersion 返回浏览器的平台和版本信息 · browserLanguage 返回当前浏览器的语言
· cookieEnabled 返回指明浏览器中是否启用 cookie 的布尔值 · cpuClass 返回浏览器系统的 CPU 等级
· onLine 返回指明系统是否处于脱机模式的布尔值 ·
platform 返回运行浏览器的操作系统平台
systemLanguage 返回 OS 使用的默认语言
· userAgent 返回由客户机发送服务器的 user-agent 头部的值
·userLanguage 返回 OS 的自然语言设置
screen 对象属性
每个 Window 对象的 screen 属性都引用一个 Screen 对象。Screen 对象中存放着有关显示浏览器屏幕的信息。JavaScript 程序将利用这些信息来优化它们的输出,以达到用户的显示要求。例如,一个程序可以根据显示器的尺寸选择使用大图像还是使用小图像,它还可以根据显示器的颜色深度选择使用 16 位色还是使用 8 位色的图形。另外,JavaScript 程序还能根据有关屏幕尺寸的信息将新的浏览器窗口定位在屏幕中间。
creen.Width
屏幕的宽度,因显示器而定,不会随窗口而改变。
screen.Height
屏幕的高度,因显示器而定,不会随窗口而改变。
screen.availwidth
屏幕的可用宽度,减去了任务栏的宽,随用户任务栏而变,不会随窗口而改变。
screen.availheight
屏幕的可用高度,减去了任务栏的高,随用户任务栏而变,不会随窗口而改变。
window.screenTop
屏幕顶端离本活动窗口中正文的顶端的距离,随窗口显示在屏幕上的位置而改变
window.screenLeft
屏幕左端离本活动窗口中正文的左端的距离,随窗口显示在屏幕上的位置而改变
offsetWidth
是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变。
offsetHeight
是对象的可见高度,包边线高度,会随窗口的显示大小改变。
clientWidth
是对象可见的宽度,不包滚动条等边线,会随窗口的显示大小改变。
clientHeight
是对象可见的高度,不包边线高度,会随窗口的显示大小改变。
scrollWidth
是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际宽度。
scrollHeight
是对象的实际内容的高,不包边线高度,会随对象中内容的多少改变(内容多了可能会改变对象的实际高度)