BOM
BOM(浏览器对象模型)
1、window对象
表示整个浏览器窗口,但不必表示其中包含的内容。window还可用于移动或调整它表示的浏览器的大小,或者对它产生其他影响。
frames集合,可以用window.frames[0]或window.frames["topFrame"]引用框架,也可以用top对象代替window对象引用这些框架(例如top.frames[0])。
window对象是整个BOM的中心。
window另一个实例是parent对象,它与装载文件的框架集一起使用,要装载的文件也是框架集。
一个更加全局化的窗口指针是self,它总是等于window。
如果页面上没有框架,window和self就等于top,frames集合的长度为0.
连锁引用window,例:parent.parent.frames["topFrame"],不赞成使用,因为框架结构的任何改变都会造成代码错误。
1)、窗口操作
moveBy(dx,dy):把浏览器窗口相对当前位置水平移动dx个像素,垂直移动dy个像素。负数则相反。
moveTo(x,y):移动浏览器窗口,使它的左上角位于用户屏幕的(x,y)处。
resizeBy(dw,dh):相对于浏览器窗口的当前大小,把它口的宽度调整dw个像素,高度调dy个像素。负数则为缩小。
resizeTo(w,h):把窗口的宽度调整为w,高度调整为h。不能使用负数。
IE提供window.screenLeft和window.screenTop 对象来判断窗口的位置,用document.body.offsetWidth和document.body.offsetHeight属性获取视口的大小。
Mozilla提供window.screenX和window.screenY属性判断窗口的位置。window.innerWidth和window.innerHeight属性来判断视口的大小,window.outerWidth和window.outerHeight属性判断浏览器窗口的自身的大小。
2)、导航和打开新窗口
用JavaScript可以导航到指定的URL,并用window.open()方法打开窗口。特性字符串是用逗号分隔的,因此在逗号或等号前后不能有空格。
如果新创建的窗口中有代码,可用window.close()关闭其自身。
opener属性是对打开新窗口的窗口的引用。
3)、系统对话框
window对象的alert()、confirm()和prompt()方法。
4)、状态栏
可用window对象的otatuo和defaultStatus属性设置状态栏值。
用户把鼠标移到某个链接上时显示该链接的信息:
<a href="books.htm" onmouseover="window.status='Information on Wrox books.'">books</a>
设置window.status属性,可向用户隐瞒链接实现的细节:
<a href="javascript:goSomewhere(1,2,3,4)" onmouseover="windstatus='Information on Wrox books.'">Books</a>
5)、时间间隔和暂停
window对象的setTimeout()方法设置暂停。
要取消还未执行的暂停,可调用clearTimeout()方法,并将暂停ID传递给它:var iTimeoutId=setTimeout("alert('Hello world!')",1000);clearTimeout(iTimeoutId);
setInterval()方法设置时间间隔,ClearInerval()方法可用这个ID阻止再次执行该代码。
6)、历史
可以访问浏览器窗口的历史。
go()方法只有一个对数,即前进后退的页面数。如果是负数,就在浏览器历史中后退。反之则前进。
后退一页:window.history.go(-1);
前进一页:只需要使用正数1:history.go(1);
另外,用back()和forward()方法可以实现同样的操作:history.back(); history.forward();
history.length属性查看历史中的页面数。
2、document对象
document对象实际上是window对象的属性,独特之处是它是唯一一个既属于BOM又属于DOM的对象。
document对象的一些通用属性:
alinkColor激活的链接的颜色;
bgColor页面的背景颜色;
fgColor页面的文本颜色;
lastModified最后修改页面的日期,是字符串;
linkColor链接的颜色;
referrer浏览器历史中后退一个位置的URL;
URL当前载入的页面的URL;
vlindColor访问过的链接颜色;
title 文本;
title属性可改变框架标题,从而反映出载入了新页面:
top.document.title="New page title";
URL属性也是可读可写的,所以可用它获取当前页面的URL,或者把它设置为新URL,把窗口导航到新页面。例如:document.URl = "http://www.florajiayou.qxsw.cn";
document对象集合:
anchors页面中所有锚的集合;
applets页面中所有upplet的集合;
embeds页面中所有嵌入式对象的集合;
forms页面中所有表单的集合;
images页面中所有图像的集合;
links页面中所有链接的集合;
方法:write()和writeln().
动态引入外部javascript文件:
<html>
<head>
<script type="text/javascript">
document.write("<script type=\"text/javascript\" src=\"external.js\">" + "</scr" + "ipt>");
</script>
</head>
</html>
open()和close()方法。
3、location对象
BOM中最有用的对象之一是location对象,它是window对象和document对象的属性。location对象表示载入窗口的URL,此外,它还可以解析URL:
hash:如果URL包含#,该方法将返回该符号之后的内容;
host服务器的名字;
hostname通常等于host,有时会省略前面的www;
href当前载入的页面的完整URL;
pathname:URL中主机名后的部分;
port:URL中声明的请求的端口,默认情况下,大多数URL没有端口信息,所以该属性通常是空白的;
protocol:URL中使用的协议,即双斜杠(//)之前的部分;
search:执行GET请求的URL中的问题后的部分,又称为查询字符串。
location.href是最常用的属性,用于获取或设置窗口的URL。
assign()方法实现的是同样的操作:location.assign("http://www.wrox.com");
reload()方法,可重新载入当前页面;参数为false时,则从缓存中载入,如果为true,则从服务端载入(默认为false).
4、navigator对象
它也是window对象的属性,可以用window.navigator引用它,也可以用navigator引用。