ECMAScript是JavaScript的核心,但如果要在Web中使用JavasCript,那么BOM(浏览器对象模型)则无疑才是真正的核心。
1. 下面我们来了解一下BOM的核心对象——window:
window表示浏览器的一个实例,它既是JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。这就意味着在网页中定义的任何对象、变量和函数,都已window作为其Global对象,因此有权访问parseInt()等方法;同时,所有在全局作用域总声明的变量和函数都会变成window对象的属性和方法。例:
var sName = "erhuo";function sayName(){ console.log("my name is "+this.sName};}console.log("This text from window : "+window.sName);//"erhuo"sayName();//"erhuo"window.sayName();//"erhuo"
上面代码中声明的变量sName和函数sayName被自动归在了window名下,于是我们就可以通过window.sName和window.sayName()来调用了。
2.窗口关系及框架window、top、parent
如果页面中包含有框架,则每个框架都有一个属于自己的window对象,并且保存在frames集合中。
在frames集合中,可以通过数值索引(从0开始,从左至右,从上到下)或者框架名称里放我那相应的window对象。每个window对象都一个name属性,即框架名称。例:
以上代码床架了一个框架集,其中一个框架居上,两个居下。对于这个例子老说,我们可以使用window.frames[0]或者window.frames["firstFrame"]来引用上方的框架,不过我们还是最好使用top而非window来引用这些框架,例如用top.frames[0]。
我们知道,top对象始终只想页面最高(最外)层的框架,也就是我们的浏览器窗口,使用top可以使我们能更准确第引用到框架。
与top对象相对应的另一个window对象是parent。顾名思义,parent对象始终指向当前框架的上一级框架。在某些情况下,parent等于top;但是在没有框架的情况下,parent一定等价于top对象(此时它们都同时等于window对象)。