window对象的属性(注意,window代表的就是窗口)
window属性的更多内容可以详见http://221.199.150.103/jsj/Html/page/book/js/d_Window.htm?F=14,L=1
window.closed //一个布尔值,只有当窗口被关闭时,它的值才为true
window.defaultStatus //设置或返回窗口状态栏中的默认文本。该属性可读可写。FF浏览器不支持该属性
window.frames[] //frames[]是窗口中所有命名的框架组成的数组。这个数组的每个元素都是一个Window对象,对应于窗口中的一个框架,浏览器窗口中每个<frameset>和<iframe>定义的框架都是frames[]数组中的元素,注:frames[]数组的元素内部还可以有框架,所以frames[i]可以有自己的frames[]数组
window.opener //返回创建本窗口的Window对象的引用,意思就是window.opener 是在由window.open()所创建或打开的新窗口中使用的,其引用的就是window.open()中的这个window对象,所以说window.opener提供了一种把两个窗口联系在了一起的方法。但是如果新的窗口不是由window.open()打开的,而是被用户人工打开的,则此时window.opener的值为null.注:只有顶层窗口的Window对象的operner属性才有效,表示框架的Window对象的operner属性无效
window.self //对当前窗口自身的引用,window、self、window.self是等价的
window.parent //对当前窗口的父窗口的引用,如果窗口本身是就是顶层窗口,没有父窗口了,parent属性返回的是对自身的引用。
window.top //对最顶层窗口的引用,如果当前窗口就是最顶层窗口,则top返回的是对自身的引用。注意,有些时候顶层窗口与父窗口时不同的。
一个防止别人用框架引用自己网页的代码:
if (window != top) {top.location = window.location;}
window对象的子对象
window.history对象是由一系列的URL组成。这些URL是用户在一个浏览器窗口内已访问的URL。History对象最初设计来表示窗口的浏览历史。但出于隐私方面的原因,History对象不再允许脚本访问已经访问过的实际URL。唯一保持使用的功能只有back()、forward()和go()方法。
window.history.length //返回浏览器历史列表中的元素数量
window.history.back() //加载历史列表中的前一个URL(相当于浏览器中后退功能按钮)
window.history.forward() //加载历史列表中的下一个URL(前进)
window.history.go() //加载历史列表中的某个具体的页面
window.location对象包含了窗口当前显示的文档的URL信息。如果把一个URL字符串赋予Location对象或它的href属性,浏览器就会把新的URL所指的文档装载进来,并显示出来。我们还可以利用Location对象的属性修改部分URL,这样就会创建新的URL,其中的一部分与原来的URL不同,浏览器会将它装载并显示出来。
window.location.href //设置或返回完整的url
window.location.protocol //设置或返回当前URL的协议
window.location.host //设置或返回当前url主机名和当前URL的端口号
window.location.hostname //设置或返回当前url主机名
window.location.port //设置或返回当前url的端口号
window.location.pathname //设置或返回当前url的路径部分,如:“http://www.123.com:2700/example/test.htm#part2”中的路径字段是“/example/test.htm”。
window.location.search //设置或返回从问号(?)开始的URL(查询部分)如:“http://www.123.com:2700/example/test.htm?K=5#part2”中的查询部分是“?K=5”。
window.location.hash //设置或返回从井号(#)开始的URL(锚)
----------------方法-------------------
window.location.assign(url) //加载指定的url文档,url参数为一个字符串,该方法与window.location.href等效
window.location.reload() //重新加载当前l文档
window.location.replace(url) //加载一个新文档取代当前l文档,url参数为一个字符串。注:replace()方法不会在History对象中生成一个新的纪录。当使用该方法时,新的URL将覆盖History对象中的当前纪录
window.navigator对象包含有关客户机浏览器的信息
window.navigator.appVersion //返回浏览器的版本号和其他信息,注意,这应该视为内部的版本号,因为它不总是与显示给用户的版本号一致。
window.navigator.appName //返回浏览器的名称
window.navigator.platform //返回运行浏览器的硬件平台
window.navigator.userAgent //返回返回浏览器用于HTTP请求的用户代理头的值,内容跟window.navigator.appVersion差不多
window.navigator.screen对象提供用户显示器的大小和可用颜色数量的信息
window.screen.width //返回显示器的宽度,以像素为单位
window.screen.height //返回显示器的高度,以像素为单位
window.screen.availWidth //返回显示器的可用宽度,以像素为单位,一般情况下以window.screen.width相同
window.screen.availHeight //返回显示器的可用高度,不包括任务栏
window对象的的方法
window.open()
window.closed()
alert(),confirm(),prompt()
focus(),blur()
setInterval(),clearInterval(),setTimeout(),clearTimeout()
print()
resizeTo(width,height) //把窗口调整到指定的大小
resizeBy(width,height) //把窗口增加或减小指定的宽或高,两个参数可正可负
moveTo(x,y) //把窗口移动到指定的坐标
moveBy(x,y) //把窗口向x方向或y方向移动指定的距离,两个参数可正可负
scrollTo(xpos,ypos) //把窗口文档滚动到指定地方
scrollBy(xpos,ypos) //把窗口文档滚动指定距离
框架
每个window对象都有一个frames[]数组来引用它包含的框架,注意,如果一个窗口没有包含其他框架了,则该窗口的frames[]数组为空,frames[]数组的使用只适用窗口中存在框架的情况下,如window.frames[0]表示的是该窗口对它里面所包含的第一个框架的引用,window.frames[0].frames[0]表示的是对嵌套框架的引用。
如果给框架指定了名字(即它的name属性),对那个框架的引用就会被存储到它的父window对象的一个新属性中,这个新属性的名字和框架的名字一样,因此可以用window.框架名来引用一个框架,注意,这里的window和框架只能是父子关系,祖孙关系都不行
函数是在定义它的作用域中执行,而不是在调用它的作用域中执行,例如,函数f()是在框架A中定义的,如果在框架B中调用它,则该函数的运行环境还是相当于在框架A中,如果函数f()中引用了全局变量,则它会在框架A中查找这些变量,而不是在框架B中。
不同框架中的变量、函数等可以被不同框架相互调用
错误处理
window对象的onerror属性比较特殊,如果给这个属性赋一个函数,那么只要这个窗口中发生了javascript错误,该函数就会被调用,此时系统会传递给该函数三个参数,第一个是描述错误的消息,第二个参数是一个字符串,它存放引发javascript错误的代码所在的文档的URL,第三个参数是文档中发生错误的行代码。
如果给onerror属性返回true,则即使发生错误也不会出现错误提示框