1.浏览器状态栏
可以通过window对象的status和defaultStatus属性设置浏览器地址栏。前者可以使浏览器地址栏文本暂时改变,后者可以在用户离开该页面前一直改变该文本。
可以在第一次载入页面时,使用默认的状态栏消息:
window.defaultStatus = "You are surfing www.wrox.com";
还可以用来显示链接的信息。(这一点在使用JavaScript URL时很有用,可以用来隐藏链接的实现细节)
<a href="javascript:goSomeWhere(1,2,3,4)" onmouseover="window.status='Information on this site'">Books</a>
2.时间间隔和暂停
可以通过window.setTimeout()方法设置暂停。该方法接收两个参数:要执行的代码和要等待的时间。第一个参数可以是代码字符串,也可以是函数指针,下面的例子展示了三种写法。
<html>
<head>
<title></title>
<script type="text/javascript">
function testTimeout1() {
setTimeout("alert('Hello,JS!')",2000);
}
function testTimeout2() {
setTimeout(function() {
alert("Hello, JS!")
},2000);
}
function sayHello() {
alert("Hello, JS!")
}
function testTimeout3() {
setTimeout(sayHello,2000);
}
</script>
</head>
<body onload="testTimeout3()">
</body>
</html>
window.setTimeout()方法会创建一个数字暂停ID,类似于OS中的进程ID。暂停ID本质上是要延迟的进程ID。调用了setTimeout之后,就不再执行它的代码。如果要取消暂停,则可以使用clearTimeout()方法,并且将暂停ID传给它。
设置时间间隔和设置暂停类似。只是它会无限次的每隔指定时间就执行指定的代码。设置时间间隔的函数是setInterval()。在语法上,时间间隔和暂停几乎没有区别。
<html>
<head>
<title></title>
<script type="text/javascript">
function testInterval1() {
setInterval("alert('Hello!')",1000);
}
function testInterval2() {
setInterval(function() {
alert("Hello!");
},1000);
}
function sayHello() {
alert("Hello!");
}
function testInterval3() {
setInterval(sayHello,1000);
}
</script>
</head>
<body onload="testInterval3()">
</body>
</html>
<html>
<head>
<script type="text/javascript">
var iNum = 0;
var iMax = 10;
var iIntervalId = null;
function incNum() {
iNum++;
alert("Hello!");
if(iNum == iMax) {
clearInterval(iIntervalId);
}
}
iIntervalId = setInterval(incNum,1000);
</script>
</head>
<body></body>
</html>
3. 浏览器历史
通过window.history的相关方法可以实现访问浏览器历史。
window.history.go():该方法接受一个参数,即前进或者后退的页数。正数代表前进,负数代表后退
window.history.back():后退
window.history.forward():前进
可以通过history.length属性查看到历史中的页面数
参考书:
《JavaScript高级编程》Nicolas C. Zakas著, 曹力 张欣 等译。