计时器
- window对象的setTimeout()方法用来实现一个函数在特定的毫秒数之后执行。setTimeout()会返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行。
- window对象的setInterval()方法用来实现一个函数在指定的毫秒数的间隔里重复运用。
方法示例
/* 函数如果接收到两个参数就执行setTimeout,否则执行setInterval,并在end时刻结束setInterval。 */
function invoke(f ,start ,interval ,end){
if(!start) start = 0;
if(arguments.length <= 2){
setTimeout(f, start);
}else{
setTimeout(repeat, start);
function repeat(){
var h = setInterval(f, interval);
if(end) setTimeout(function(){
clearInterval(h);
},end);
}
}
}
浏览器定位和导航
解析URL
window对象的location属性引用的是location对象,表示该窗口中当前显示文档的URL,location对象的href属性是一个字符串,后面包含URL的完整文本,使用window.location.toString()将会返回href属性的值。
location对象的其他属性,protocol、host、hostname、port、pathname、search——表示URL 的各个部分。
属性 | 解释 |
---|---|
hash | URL的锚部分,包括开头的哈希(#)符号,文档URL这个部分指定文档中某个锚的名字。 |
host | URL的主机名和端口部分 |
hostname | URL的主机名 |
href | URL的完整文本 |
pathname | URL的路径名部分 |
port | 端口部分 |
protocol | 协议部分 |
search | URL的查询部分,包括开头的问号 |
载入新的文档
- location.assign()方法可以载入新的文档,并且历史记录不会被删除,也就是说能够通过返回原始文档;
- location.replace()方法也可以载入新文档,更形象的来说应该是覆盖原始文档,因为在浏览历史会被删除
- location.reload()方法可以是浏览器重新载入当前文档
- location对象的URL分解属性是可写的,并且也可以导致再入一个新的文档(如果改变的是hash值,则在当前文档中进行跳转),历史部会被删除
浏览历史
- history的length属性表示浏览历史列表中的元素数量。
- back()方法表示后退,forward()方法表示前进
- go()方法接收一个整数参数,表示向前或者向后跳过任意多个页
history.go(-1)
相当于history.back()
;history.go(1)
相当于history.forward()
- 如果窗口包含多个子窗口,那么子窗口的浏览历史也会穿插在主窗口的历史中。
浏览器和屏幕信息
Navigator对象
Screen对象
- 提供窗口显示的大小和可用的颜色数量的信息,属性width与height以像素为标准。
对话框
- alert()显示消息等待用户关闭对话框
- confirm()显示消息,要求用户点击确定或者取消,并返回布尔值;
- prompt()显示消息,等待用户输入字符串
- 对话框弹出的时候会产生阻塞,也就是说这个时候代码停止运行。
方法示例
do{
var name = prompt("What is your name?");
var corrent = confirm("You entered '" + name + "'.\n");
}while(!corrent)
alert("hello," + name + "!");
多窗口和窗体
打开和关闭窗口
- window.open()可以打开新的浏览器窗口
open()参数序号 | 解释 |
---|---|
1 | 新窗口中显示的文档的URL |
2 | 新窗口的名字,如果指定的是一个已存在的窗口名字,就直接跳转,否则打开新的窗口 |
3 | 可选参数,是一个以逗号分隔的列表,包含大小和各种属性 |
- window.close()关闭窗口
窗体之间的关系
- 窗体可以用parent属性引用包含他的窗口的窗体window对象:parent.history.back()
- 如果一个窗口是顶级窗口或者标签,而不是窗体,那么parent属性引用的是这个窗口本身 parent==self;只有顶级窗口才会返回true
- 可以使用parent.parent向上查找
- top属性表示包含窗口的顶级窗口
- 每个window都有自己的frames属性,它引用自身包含的窗口或者窗体的子窗体。该属性是类数组对象,除了使用数字进行索引之外,还可以使用名字或者id’进行索引
交互窗口中的JavaScript
- 在A的脚本中var i = 1;在B脚本中引用:parent.A.i;
- 在B中创建函数f,在A中调用需要使用parent.B.f()
- 要时刻注意作用域