无双

博学善思,自强不息

导航

js学习笔记(十一)窗口和框架

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,则即使发生错误也不会出现错误提示框

posted on 2010-07-02 12:50  无双  阅读(1950)  评论(0编辑  收藏  举报