浏览器对象模型BOM(Browser Object Model)javascript
一、结构java
结构图以下:浏览器
二、BOM的做用缓存
BOM提供了一些访问窗口对象的一些方法,咱们能够用它来移动窗口位置,改变窗口大小,打开新窗口和关闭窗口,弹出对话框,进行导航以及获取客户的一些信息如:浏览器品牌版本,屏幕分辨率。但BOM最强大的功能是它提供了一个访问HTML页面的一入口——document对象,以使得咱们能够经过这个入口来使用DOM的强大功能!!!服务器
window对象是BOM的顶层(核心)对象,全部对象都是经过它延伸出来的,也能够称为window的子对象。因为window是顶层对象,所以调用它的子对象时能够不显示的指明window对象,例以下面两行代码是同样的:cookie
document.write("BOM");
window.document.write("BOM");
window -- window对象是BOM中全部对象的核心。window对象表示整个浏览器窗口,但没必要表示其中包含的内容。此外,window还可用于移动或调整它表示的浏览器的大小,或者对它产生其余影响。app
JavaScript中的任何一个全局函数或变量都是window的属性。框架
三、window子对象ide
四、window对象关系属性函数
五、window对象定位属性
六、window对象的方法
方法 | 描述 |
alert() | 弹出一个带有一段消息和确认按钮的窗体 |
blur() | 把键盘焦点从顶层窗口移开 |
clearInterval() | 取消由setInterval()设置的timeout |
clearTimeout() | 取消有setTimeout()方法设置的timeout |
close() | 关闭浏览器窗口 |
confirm() | 显示带有一段消息以及确认按钮盒取消按钮的对话框 |
focus() | 把键盘焦点给予一个窗口 |
moveBy() | 可相对窗口的当前坐标移动指定的像素 |
moveTo() | 把窗口的左上角移动到一个指定的坐标 |
open() | 打开一个新的浏览器窗体 |
prompt() | 显示可提示用户输入的对话框 |
resizeBy() | 按照指定的像素调整窗口的大小 |
resizeTo() | 把窗体的大小调整到指定的宽度和高度 |
scrollBy() | 按照指定的像素值来滚动内容 |
scrollTo() | 把内容滚动到指定的坐标 |
setInterval() | 按照指定的周期(毫秒)来调用函数或计算表达式 |
setTimeout() | 在指定的毫秒数后调用函数或表达式 |
.window.open("www.baidu.com","dqcx","height=200,width=300,top=20,left=20,resizable=yes"); //打开一个新的窗体 .if(confirm(“肯定关闭?”)) alert("你点击了肯定"); else alert("你点击了取消"); //confirm()方法,注意它只接受一个参数,即要显示的文本 .var name=prompt("姓名:",""); //prompt()方法,提示用户输入某些信息,接受连个参数,一个显示文本,一个默认输入文本 .window.history.go(-1); //后退一页 window.history.go(1); //前进一页
窗体控制
moveBy(x,y)——从当前位置水平移动窗体x个像素,垂直移动窗体y个像素,x为负数,将向左移动窗体,y为负数,将向上移动窗体
moveTo(x,y)——移动窗体左上角到相对于屏幕左上角的(x,y)点,当使用负数作为参数时会吧窗体移出屏幕的可视区域
resizeBy(w,h)——相对窗体当前的大小,宽度调整w个像素,高度调整h个像素。若是参数为负值,将缩小窗体,反之扩大窗体
resizeTo(w,h)——把窗体宽度调整为w个像素,高度调整为h个像素
窗体滚动轴控制
scrollTo(x,y)——在窗体中若是有滚动条,将横向滚动条移动到相对于窗体宽度为x个像素的位置,将纵向滚动条移动到相对于窗体高度为y个像素的位置
scrollBy(x,y)—— 若是有滚动条,将横向滚动条移动到相对于当前横向滚动条的x个像素的位置(就是向左移动x像素),将纵向滚动条移动到相对于当前纵向滚动条高度为y个像素的位置(就是向下移动y像素)
窗体焦点控制
focus()—— 使窗体或控件获取焦点
blur()——与focus函数相反,使窗体或控件失去焦点
新建窗体
open()——打开(弹出)一个新的窗体
close()——关闭窗体
opener属性——新建窗体中对父窗体的引用,中文"开启者"的意思
window.open方法语法
window.open(url, name, features, replace);
open方法参数说明
open函数features参数说明,若是不使用第三个参数,将打开一个新的普通窗口
参数名称 |
类型 |
说明 |
height |
Number |
设置窗体的高度,不能小于100 |
left |
Number |
说明建立窗体的左坐标,不能为负值 |
location |
Boolean |
窗体是否显示地址栏,默认值为no |
resizable |
Boolean |
窗体是否容许经过拖动边线调整大小,默认值为no |
scrollbars |
Boolean |
窗体中内部超出窗口可视范围时是否容许拖动,默认值为no |
toolbar |
Boolean |
窗体是否显示工具栏,默认值为no |
top |
Number |
说明建立窗体的上坐标,不能为负值 |
status |
Boolean |
窗体是否显示状态栏,默认值为no |
width |
Number |
建立窗体的宽度,不能小于100 |
特性字符串中的每一个特性使用逗号分隔,每一个特性之间不容许有空格
open方法返回值为一个新窗体的window对象的引用
对话框
alert(str)—— 弹出消息对话框(对话框中有一个“肯定”按钮)
confirm(str)—— 弹出消息对话框(对话框中包含一个“肯定”按钮与“取消”按钮)
prompt(str,defaultValue)——弹出消息对话框(对话框中包含一个“肯定”按钮、“取消”按钮与一个文本输入框),因为各个浏览器实现的不一样,若没有第二个参数(文本框中的默认值)时也最好提供一个空字符串
状态栏
window.defaultStatus 属性——改变浏览器状态栏的默认显示(当状态栏没有其它显示时),浏览器底部的区域称为状态栏,用于向用户显示信息
window.status 属性——临时改变浏览器状态栏的显示
时间等待与间隔函数
setTimeout()—— 暂停指定的毫秒数后执行指定的代码
clearTimeout()——取消指定的setTimeout函数将要执行的代码
setInterval()——间隔指定的毫秒数不停地执行指定的代码
clearInterval()——取消指定的setInterval函数将要执行的代码
setTimeout与setInterval方法有两个参数,第一个参数能够为字符串形式的代码,也能够是函数引用,第二个参数为间隔毫秒数,它们的返回是一个可用于对应clear方法的数字ID
var tid = setTimeout("alert('1')",1000); alert(tid); clearTimeout(tid);
七、History对象,在浏览器历史记录中导航
History 对象的属性:length 返回浏览器历史列表中的 URL 数量
History 对象的方法
八、Location 对象
Location 对象的属性
Location 对象的方法
九、Navigator对象
Navigator 对象的属性
十、screen对象
javascript能够获取某些关于用户屏幕的信息
属性 | 描述 |
availHeight | 返回显示屏幕的高度(除window任务栏) |
availWidth | 返回显示屏幕的宽度(除window任务栏) |
deviceXDPI | 返回显示屏幕的每英寸水平点数 |
deviceXDPI | 返回显示屏幕的每英寸垂直点数 |
fontSmoothingEnabled | 返回用户是否在显示控制面板中开启了字体平滑 |
height | 返回显示屏幕的高度 |
logicalXDPI | 返回显示屏幕每英寸的水平方向的常规点数 |
logicalYDPI | 返回显示屏幕每英寸的垂直方向的常规点数 |
pixelDepth | 返回 显示屏幕的颜色分辨率(比特每像素) |
updateInterval | 设置或返回屏幕的刷新率 |
width | 返回显示器屏幕的宽度 |
每一个window对象的screen属性都引用screen对象。该对象存放着有关显示器屏幕相关的信息,咱们能够根据这些信息来优化页面的输入等等。
十一、框架与多窗口通讯
子窗口与父窗口
只有自身和使用window.open方法打开的窗口和才能被JavaScript访问,window.open方法打开的窗口经过window.opener属性来访问父窗口。 而在opener窗口中,能够经过window.open方法的返回值来访问打开的窗口!
框架
window.frames集合:在框架集或包含iframe标签的页面中,frames集合包含了对有框架中窗口的引用
alert(frames.length);//框架的数目 alert(frames[0].document.body.innerHTML);//使用下标直接获取对框架中窗口的引用 //不但可使用下标,还可使用frame标签的name属性 alert(frames["frame1"].document.title);
在框架集中还可使用ID来获取子窗口的引用
var frame1 =document.getElementById("frame1");//这样只是获取了标签 var frame1Win = frame1.contentWindow;//frame对象的contentWindow包含了窗口的引用 //还能够直接获取框架中document的引用 var frameDoc = frame1.contentDocument; alert(frameDoc);//但IE不支持contentDocument属性
子窗口访问父窗口——window对象的parent属性
子窗口访问顶层——window对象的top属性