一、window对象
1,计时器
setTimeout()
setInterval()
是用来注册在指定时间之后单次或重复调用的函数。
它们都是客户端Javascript中重要的全局函数,所以定义为Window对象的方法。
setTimeout()
用来实现一个函数在指定的毫秒数之后运行。返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行。
setInterval()
和setTimeoutI()一样,只不过这个函数在指定毫秒数的间隔里重复调用。返回一个值,这个值可以传递给clearInterval()用于取消这个函数的执行。
setInterval(updateClock,60000);//每60秒调用一次updateClock()
2,浏览器定位和导航
2.1Window对象的location属性引用的是Location对象,它表示该窗口当前显示的文档的URL,并定义了方法来使窗口载入新的文档。
Document对象的location属性也引用到Location对象:
window.location === document.location //总是返回true
2.2这个对象的其他属性--protocol、host、hostname、port、pathname和search,分别表示URL的各部分。它们称为“URL分解“属性,同时被Link对象(通过HTML文档中的<a>
和 <area>
元素创建)支持。
2.3载入新的文档
Location对象的assign()方法可以使窗口载入并显示你指定的URL中的文档。
replace()方法也类似,但它在载入新文档之前会从浏览历史中把当前文档删除。
如果脚本无条件地载入一个新文档,replace()方法可能比assign()方法更好的选择。否则,“后退“按钮会把浏览器带回原始文档,而相同的脚本则会再次载入新文档。如果监测到用户的浏览器不支持某些特性来显示功能齐全的版本,可以用location.replace()来载入静态的HTML版本。
reload()可以让浏览器重新载入当前文档。
使浏览器跳转到新页面的一种更传统的方法是直接把新的URL赋给location属性:
location = "http://oreilly.com";//在此网站买书
还可以把相对URL赋给location,它们会相对于当前URL进行解析:
location = "page2.html";//载入下一个页面
纯粹的片段标识是相对URL的一种类型,它不会让浏览器载入新文档,但只会使它滚动到文档的某个位置。#top标识符是个特殊的例子:如果文档中没有元素的ID是“top“,它会让浏览器跳到文档开始处。
location = "#top";//跳转到文档的顶部
Location对象的URL分解属性是可写的,对它们重新赋值会改变URL的位置,并且导致浏览器载入一个新的文档(如果改变的是hash属性,则在当前文档中跳转):
location.search = "?page=" + (pagenum+1);//载入下一个页面
3,浏览历史
Window对象history属性引用的是该窗口的History对象。
History对象是用来把窗口的浏览历史用文档和文档状态列表的形式表示。
History对象的length属性表示浏览器历史列表中的元素数量,但出于安全的因素,脚本不能访问已保存的URL。(如果允许,则任意脚本都可以窥探你的浏览历史)
History对象的back()和forward()方法与浏览器的“后退“和“前进“按钮一样:它们使浏览器在浏览历史中前后跳转一格。第三个方法--go()接受一个整数参数,可以在历史列表中向前(正)或向后(负)跳过任意多个页
history(-2);//后退两个历史记录,相当于单击“后退“按钮两次
4,浏览器和屏幕信息
脚本有时候需要获取和它们所在的web浏览器或浏览器所在的桌面相关的信息。Window的navigator和screen属性,分别引用的是Navigator和Screen对象,而这些对象提供的信息允许脚本来根据环境定制自己的行为。
4.1 Navigator对象
包含浏览器厂商和版本信息的Navigator对象
4.2Screen对象
提供有关窗口显示的大小和可用的颜色数量的信息。