【总结】BOM

一、Window对象

ECMAScript是JavaScript的核心,但如果要在Web中使用JavaScript,那么BOM(浏览器对象模型)则才是真正的核心。

BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中,window对象有双重角色,它既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。

全局变量与在window对象上直接定义属性的区别:

       全局变量不能通过delete操作符删除,而直接在window对象上的定义的属性可以。

top对象始终指向最高(最外)层的框架,也就是浏览器窗口。

parent(父)对象始终指向当前框架的直接上层框架。

self对象则回指window。

注:除非最高层窗口是通过window.open()打开的,否则其window对象的name属性不会包含任何值

超时调用(setTimeout)方法,它接收两个参数:要执行的代码和以毫秒表示的事件(即在执行代码前需要等待多少毫秒)。

//不建议传递字符串!
setTimeout("alert('Hello world')",1000);

//推荐的调用方式
setTimeout(function(){
  alert("Hello world");
},1000);



在调用setTimeout之后,该方法会返回一个数值ID,表示超时调用。这个超时调用ID是计划执行代码的唯一标识,可以通过它来取消超时调用。

要取消尚未执行的超时调用计划,可以调用clearTimeout()方法并将相应的超时调用ID作为参数传递给它。只要是在指定的事件尚未过去之前调用clearTimeout,就可以完全取消超时调用。

//设置超时调用
var timeoutId = setTimeout(function(){
  alert("Hello world");
},1000);

//注意:把它取消
clearTimeout(timeoutId);


间歇调用(setInterval)是按照指定的时间间隔重复执行代码,直至间歇调用被取消或者页面被卸载。

//不建议传递字符串!
setInterval("alert('Hello world!')",1000);

//推荐的调用方式
setInterval(function(){
   alert("Hello world!");
},1000);
调用setInterval()方法同样也会返回一个间歇调用ID,该ID可用于在将来某个时刻取消间歇调用。

要取消尚未执行的间歇调用,可用使用clearInterval( )方法并传入相应的间歇调用ID.

var num = 0;
var max = 10;
var intervalId = null;

function incrementNumber(){
    num++;

    //如果执行次数达到了max设定的值,则取消后续尚未执行的调用
    if(num == max){
        clearTnterval(intervalId );
        alert("Done");
     }
}
     intervalId = setInterval(incrementNumber,500);

二、系统对话框

通过alert( )、confirm( )和prompt( )方法可以调用系统对话框向用户显示消息。通过这几种方法打开的对话框都是同步和模态的,即显示这些对话框的时候代码会停止执行,而关掉这些对话框后代码又会恢复执行。

三、location对象

location是最有用的BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。事实上,location对象是很特别的一个对象,因为它既是window对象的属性,也是document对象的属性,即window.location和document.location引用的是同一个对象。


(1)位置操作

location对象可以通过很多方式来改变浏览器的位置:(下面三种方式效果相同)

location.assign("http://www.wrox.com");
window.location = "http://www.wrox.com";
location.href = "http://www.wrox.com";   //最常用的设置url的属性方式
(2)重新加载
reload( )是重新加载当前显示的页面。
location.reload( );//重新加载(有可能从缓存中加载)
location.reload(true);//重新加载(从服务器重新加载)

四、history对象

history对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。因为history是window对象的属性,因此每个浏览器窗口、每个标签页乃至每个框架,都有自己的history对象与特定的window对象关联。

go()方法可以在用户的历史记录中任意调整。
//后退一页
history.go(-1);  
//前进一页
history.go(1);
//前进两页
history.go(2);
     back()和forward()可以来代替go()
//后退一页
history.back();
//前进一页
history.forward();

history.length( )保存着历史记录的数量,包括所有历史记录,即所有向后和向前的记录。

对于加载到窗口、标签页或框架中的第一个页面而言,history.length等于0。

if( history.length == 0){
  //这应该是用户打开窗口后的第一个页面
}







猜你喜欢

转载自blog.csdn.net/zd375005009/article/details/79066013
bom