JavaScript Window对象

本文介绍了JavaScript中的Window对象及其重要属性和方法,包括closed、status、document等属性,alert()、confirm()、open()等方法,并解释了如何使用location、history等进行页面控制。
摘要由CSDN通过智能技术生成

   Window对象在JavaScript中扮演正非常重要的角色。

  下面介绍一些重要的Window属性:
  closed
     当窗口被关闭时,返回true
  defaultStatus、status
     在浏览器状态栏中显示的文本
  document
     对Document对象的引用,该对象代表在窗口中显示的HTML文档(以后将详细介绍)
  frames[]
     Window对象的数组,代表窗口中的各个框架(如果存在)
  history
     对History对象的引用,该对象代表用户浏览窗口的历史
  location
     对Location对象的引用,该对象代表在窗口中显示的文档的URL。设置这个属性会引 发浏览器装载一个新文档
  name
     窗口的名称。可被HTML标记<a>的target性质使用
  opener
     对打开当前窗口的Window对象的引用。如果当前窗口被用户打开,则它的值为null
  parent
     如果当前窗口是框架,它就是对包含这个框架的窗口的引用
  self
     自引用属性,是对当前Window对象的引用,与window属性同义
  top
     如果当前窗口是框架,它就是对包含这个框架的顶级窗口的Window对象的引用
  window
     自引用属性,同self

  Window对象的重要方法:
  alert() confirm() prompt()
     向用户显示简单的对话框,confirm()和prompt()用于获取用户的响应
  close()
     关闭窗口
  focus() blur()
     请求或放弃窗口的键盘焦点。focus()方法还通过把窗口提前到堆栈顺序的最前面,  从而确保窗口可见
  moveBy() moveTo()
     移动窗口
  open()
     打开新的定义窗口,用指定的特性显示指定的URL
  print()
     打印窗口或框架中的内容,就像用户点击了窗口工具栏中的Print按钮一样(某些老版  本浏览器不支持此方法)  
  resizeBy() resizeTo()
     调整窗口大小
  scrollBy() scrollTo()
     滚动窗口中显示的文档
  setInterval() clearInterval()
     设置或者取消重复调用的函数,该函数在两次调用之间有指定的延迟
  setTimeout() clearTimeout()
     设置或取消在指定的若干毫秒后要调用一次的函数

  Window对象的onerror属性比较特殊,如果给这个属性赋一个函数,那么只要这个窗口中发生JavaScript错误,该函数就会被调用,它就成了窗口的错误处理函数。定义onerror属性方法,如:
          window.οnerrοr=method; //注意method为要处理错误调用的函数,不要();
  传递给错误处理程序的参数有三个。第一个是描述错误的消息,它可以是"missing operator in expression"()、"self is read-only"()或"myname is not defined"();第二个参数是一个字符串,用来存放引发错误的JavaScript代码所在的文档的URL;第三个参数是文档中发生错误的行代码。
  除了参数,onerror处理程序有个重要返回值。当发生错误时,浏览器通常在一个对话框或状态栏中显示错误消息。如果onerror返回true,它通知系统处理程序将处理错误,无需其他操作,系统也就不会显示自己的错误消息。
  需要注意:onerror错误处理程序在Netscape6种存在bug。虽然在发生错误的时候会触发指定函数,但传给函数的三个参数不正确,而且不可用。Netscape 6和其他支持JavaScript1.5的浏览器有另外一种捕捉错误的方法——try/catch语句。

  Window.navigator属性引用的是包含Web浏览器总体信息的Navigator对象。这个对象是在Netscape Navigator之后命名的,不过IE也支持它,IE还支持属性clientInformation,它是navigator的同义词,但Netsacpe和Mozilla不支持它。以下是Navigator对象的五个重要属:
  appName
     Web浏览器的简单名称
  appVersion 
     浏览器的版本号和其他版本信息。注意,这个是内部版本号,可能与显示给用户的版本号不一致。
  userAgent
     浏览器在它的UESR-AGENT HTTP标题中发送的字符串。这个属性通常包含appName和appVersion中的所有信息
  appCodeName 
     浏览器的代码名。Netscape用代码名"mozilla"作为这一属性的值       
  platform
     运行浏览器的硬件平台。这一属性是JavaScript1.2加入的  

  在JavaScript1.2中,Window对象的screen属性引用Screen对象。Screen对象提供有关用户显示器的大小和可用颜色数量的信息。属性width和height指定的是以像素为单位ide显示器大小,属性availWidth和availHeight指定的是实际可用的显示器大小,排除了像Windows任务栏这样的特性所占的空间。
  属性colorDepth指定可以显示的颜色数的以2为底的对数。这个值通常与显示器所使用的每个像素的位数相同。但是某些环境中,浏览器可能对自身的限制,可以显示的是可以颜色的子集。这时,screen.colorDepth的值小于屏幕的每个像素的位数。

  Window 对象的open()方法可以打开一个新的浏览器窗口。这个方法有四个可选参数,返回代表新打开窗口的Window对象。open()第一个参数是新窗口的URL,如果被省略则打开窗口;第二个参数是新打开窗口的窗口名,这个名字可以作为<a>标记或<form>标记的target属性的值;第三个参数是特性列表,这些特性声明了窗口的大小和它的GUI装饰(如菜单栏,状态栏,工具栏等);第四个参数只在第二个参数命名的是一个已存在的窗口时才有用,它是一个布尔值,声明由第一个参数指定的URL是应该替换掉窗口浏览器历史的当前项(true),还是应该在窗口浏览历史中创建一个新的项(false),后者是默认设置。
  下面是从网上收集的open()方法的各项参数
     参数 | 取值范围 | 说明
     alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
     alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
     depended | yes/no | 是否和父窗口同时关闭
     directories | yes/no | Nav2和3的目录栏是否可见
     height | pixel value | 窗口高度
     hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
     innerHeight | pixel value | 窗口中文档的像素高度
     innerWidth | pixel value | 窗口中文档的像素宽度
     location | yes/no | 位置栏是否可见
     menubar | yes/no | 菜单栏是否可见
     outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
     outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
     resizable | yes/no | 窗口大小是否可调整
     screenX | pixel value | 窗口距屏幕左边界的像素长度
     screenY | pixel value | 窗口距屏幕上边界的像素长度
     scrollbars | yes/no | 窗口是否可有滚动栏
     titlebar | yes/no | 窗口题目栏是否可见
     toolbar | yes/no | 窗口工具栏是否可见
     Width | pixel value | 窗口的像素宽度
     z-look | yes/no | 窗口被激活后是否浮在其它窗口之上

  在JavaScript1.2中,方法moveTo()可以将窗口的左上角移动到指定坐标。moveBy()方法可以将窗口上下左右移动指定数量的像素。方法resizeTo()和resizeBy()可以按照相对数量和绝对数量调整窗口大小。

  方法focus()和blur()提供了对窗口的高级控制。focus()会请求系统将键盘焦点赋予窗口,blur()则会放弃键盘焦点。

  方法scrollBy()会将窗口中显示的文档向左右上下滚动指定数量的像素。而scrollTo()会将文档滚动到一个绝对位置。

  窗口的location属性引用的是Location对象,它代表该窗口中当前显示的文档的URL。Location对象的href属性是一个字符串,包含完整的URL。其它属性(如protocal、host、pathname和search等)则分别声明了URL的各个部分。
  Location对象的search属性,包含的是问号之后的那部分URL,这部分通常是某种类型的查询字符串。(有个提取URL中参数的例子)
  Location对象自身也可以被用作一个原始字符串值,它的值与href属性值相同(Location对象有一个相配的toString()方法)。同时还以给窗口的location属性赋值,这样会引起浏览器装载并跳转到相应页面。、
  Location对象还支持两种方法给location属性赋值。方法reload()会从Web服务器再次装入当前显示的页面;方法replace()会装载并显示指定的URL,但是它不同于直接将一个URL赋给窗口的location属性,replace()方法会替换浏览器历史列表中的当前URL,而不是在历史列表中创建一个新条目。
  需要注意的是Window对象的location属性和Ducoment对象的location属性不同。前者引用一个Location对象,后者只是一个字符串,不具有Location对象的任何特性,document.location同document.URL。在大多数情况下document.location和location.href相同,但是,如果存在服务器重定向,document.location包含的是已经装载的URL,而location.href包含的是原始请求文档的URL。

  Window对象的history属性引用的是该窗口的History对象。出于安全因素的考虑,其实脚本不能真正访问History对象中以数组形式存储的窗口的浏览历史(除非用户在Netscape 4和其后的版本中对有签名的脚本进行了授权)。History对象的length属性可以被访问,但它不能提供任何有用信息。
  但History对象支持三种方法:方法back()和forward()可以在窗口(或框架)的浏览历史中前后移动,这与客户点击浏览器的Back和Forward按钮作用相同;方法go()有一个整数参数,可以在历史列表中向前或向后跳过多个页。

  Window对象的方法open()返回代表新创建的窗口的Window对象,而这个新窗口具有opener属性,该属性可以打开它的原始窗口,从而实现两个窗口的相互引用。而一个窗口中的任何框架都可以使用Window对象的属性frames、parent和top属性来引用其它框架。
  我们可以通过name属性给窗口或框架指定一个名字,这个名字可以用作<a>、<map>或<form>的性质的target的值,这样就可以告诉浏览器把激活链接、点击图像或者提交表单的结果显示在哪里。
  虽然target和name都是HTML的一部分,与JavaScript无关,但是给框架命名却与JavaScript有关。给框架命名后,我们就可以通过名字,在JavaScript中引用这个框架,如:给一个框架名字<frame name="frmName" src="frm.html">,我们就可以在它的兄弟框架中通过parent.frmName来引用它。
  在多窗口或多框架中,我们可以通过parent、top等实现窗口或框架中属性或方法的相互调用。在采用这种方式在框架或创建间共享函数时,词法作用域的规则非常重要,函数在定义它的作用域中执行,而不是在调用它的作用域中执行。所以在函数执行过程中调用的变量是在定义它的作用域中寻找,而不在执行它的作用域寻找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值