window

Window 对象是客户端 javascript 程序的全局对象。本章介绍 Window 对象的属性和方法,这些属性定义了许多不同的 API,但是只有一部分实际上和浏览器窗口相关。Window 对象是以窗口命名的。

计时器

setTimeout()setInterval()可以用来注册在指定的时间之后单词或重复调用的函数,其定义为 Window 对象的方法。

Window 对象的 setTimeout()方法用来实现一个函数在指定的毫秒之后运行。并返回一个值,这个值可以传递给 clearTimeout()用于取消这个函数的执行。

setInterval()setTimeout()一样,只不过函数会在指定毫秒数的间隔里重复调用:

setInterval(updateClock, 60000) // 每60秒调用一次updateClock()

setTimeout()一样,也会返回一个值,这个值可以传递给 clearInterval(),用以取消后续函数的调用。

如果以 0 毫秒调用 setTimeout(),那么指定的函数不会立刻执行。相反会把它放到队列中,等前面的等待状态事件处理程序全部执行完成后,再“立即”调用它。

定位和导航

Window 对象的 location 对象,它表示该窗口中当前显示的文档的 URL,并定义了方法来使窗口载入新的文档。

Document 对象的 location 属性也引用到 Location 对象:

window.location === document.location // 返回true

Document 对象也有一个 URL 属性,是文档首次载入后保存该文档的 URL的静态字符串。如果定位到文档的片段标识符(如#table-of-contents),Location 对象会做相应的更新,而 document.URL 属性不会改变。

解析 URL

WIndow 对象的 location 属性引用的是 Location 对象,它表示该窗口中当前显示的文档的 URLLocation 对象的 href 属性是一个字符串,后者包含 URL 的完整文本。Location 对象的 toString()方法返回 href 属性的值。

这个对象的其他属性---protocol,host,hostname,port,pathnamesearch,分别表示 URL 各个部分。

载入新的文档

Location 对象的 assign()方法可以使窗口载入并显示你指定的 URL 中的文档。replace()方法类似,但他在载入新的文档之前会把浏览历史中把当前文档删除。比如当要检测到用户不支持 XMLHttpREquest 对象,可用 replace 来载入静态版的 HTML 版本,这样后退时不会回到需要 XMLHttpREquest 的页面。

Location 对象还定义了 reload()方法,可以让浏览器重新载入当前文档。

使浏览器跳转到新页面有两种方法:

纯粹的片段标识符是相对 URL 的一种类型,它不会让浏览器载入新文档,只会使它滚动到文档某个位置。#top 标识符是个特殊的例子:如果文档中没有元素的 ID 是“top”,会跳转到开始处:

Location 对象的 URL 分解属性是可写的,对它们重新赋值会改变 URL 的位置,并导致重新载入一个新的文档(如果改变的是 hash 属性,则在当前文档中进行跳转):

浏览历史

Window 对象的 history 属性引用该窗口的 History 对象。History 对象的 length 属性表示浏览历史列表中的元素数量,但脚本不能访问已保存的 URL

History 对象的 back()forward()方法与浏览器的“后退”和“前进”按钮一样。go()接受一个整数参数,可以在历史列表中向前或向后跳过任意多个页。

浏览器和屏幕信息

Window 对象的 navigator 属性引用的包含浏览器厂商和版本信息的对象。常用的 7 个属性:

  1. appName:web 浏览器的全称。

  2. appVersion:包含浏览器厂商和版本信息的详细字符串。

  3. userAgent: 浏览器在它的 USER-AGENT HTTP 头部发送的字符串。

  4. platform:在其上运行浏览器的操作系统的字符串。

  5. onLine:表示浏览器当前是否连接到网络。

  6. geolocation:Geolocation 对象定义用于确定用户地理位置信息的接口。

  7. cookie:非标准的方法,如果浏览器可以保存永久 cookie 时,返回 true

Screen 对象

Window 对象的 screen 属性引用的是 Screen 对象。widthheight 指定以像素为单位的窗口大小。属性 availWidthavailHeight 指定实际可用显示大小,属性 colorDepth 指定显示的 BPP 值。

Last updated