- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JavaScript笔记:BOM讲述
JavaScript笔记:BOM
window对象
BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中,window
有双重角色:它既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的global对象。着意味着,在网页中的任何一个对象、变量和函数,都以window为起global对象。
全局作用域
由于window对象同时扮演着global对象的角色,因此在全局作用域中声明的变量、函数都会变成window对象的属性和方法。
var age = 29;
function sayAge(){
alert(this.age);
}
alert(window.age); //29
sayAge(); //29
window.sayAge(); //29
可见,我们在全局作用域下定义了的属性和方法被自动的归类到了window对象名下。
但是还有一点区别:在全局作用域下定义的属性不能通过delete方法删除,可是直接在window名下定义的变量则可以用delete方法删除。
var age = 29;
window.color = red;
//在IE 9 版本浏览器下会抛出错误,其他浏览器返回false
delete window.age;
//在IE 9 版本浏览器下会抛出错误,其他浏览器返回true
delete window.color; //returns true
alert(window.age); //29
alert(window.color); //undefined
另外,尝试访问没有声明过的变量会抛出错误。但是通过查询window对象,可以知道某个变量是否存在。
// 抛出错误,因为oldValue未定义
var newValue = oldValue;
// 不会抛出错误,因为这是一次属性查询
// newValue值是undefined
var newValue = window.oldValue;
窗口关系和框架
如果窗口中包含框架,那么每一个框架都有一个属于自己的window对象。在frame集合中,可以通过数值索引或者框架名来访问响应的window对象。每个window对象都有一个name属性,其中包含框架名称。如下是一个包涵框架的页面:
html
head
titleFrameset Example/title
/head
frameset rows=160,*
frame src=frame.html name=topFrame
frameset cols=50%,50%
frame src=anotherframe.html name=leftFrame
frame src=yetanotherframe.html name=rightFrame
/frameset
/frameset
/html
// 对框架的访问方式:
topFrame:
window.frames[0]
window.frames[topFrame]
top.frames[0]
top.frames[topFrame]
leftFrame:
window.frames[1]
window.frames[leftFrame]
top.frames[1]
top.frames[leftFrame]
rightFrame:
window.frames[2]
window.frames[rightFrame]
top.frames[2]
top.frames[rightFrame]
top对象始终指向最外层的框架,也就是浏览器窗口。使用它可以确保在一个框架中正确的访问另一个框架。对于在一个框架中编写的任何代码来说,其中的window指向的都是那个框架的特定实例,而非最高层框架。上面的代码,展示了在最高层窗口中,通过代码来访问框架的不同方式。
窗口位置
用来确定和修改window对象的位置属性的方法有很多:例如,screenLeft和screenTop,分别用来确定窗口相对于屏幕左边和上边的值。
但是,不同浏览器下,访问这两个值的变量名可能不同,如下代码可以跨浏览器的取得窗口对象的位置信息:
var leftPos = (typeof window.screenLeft == number) ?
window.screenLeft : window.screenX;
var topPos = (typeof window.screenTop == number) ?
文档评论(0)