<html>
<head>
<title>setTimeout example</title><script type="text/javascript教程">
function delayedAlert()
{
timeoutID = window.setTimeout(slowAlert, 2000);
}function slowAlert()
{
alert("That was really slow!");
}function clearAlert()
{
window.clearTimeout(timeoutID);
}window.setTimeout('window.parent.generateOutput()', 1000);
function generateOutput(aConcise) {
if(aConcise)
parent.generateConciseOutput();
else
parent.generateOutput();
}
window.setTimeout(generateOutput, 1000, true);
</script>
</head>
<body>
<button onClick="delayedAlert();"
>show an alert box after 2 seconds</button><br>
<button onClick="clearAlert();">Cancel</button>
<!--
使用setTimeout的小技巧
(1)IE中给setTimeout中的调用函数传参数
上面的分析可知,IE是不支持在setTimeout中给被调用的函数传参数的,为了浏览器世界的和谐,我们可以把函数调用参数包裹进新的匿名函数中。示例:
function f(a){
alert(a);
}
// setTimeout(f,50,'hello'); //用于非IE
setTimeout(function(){f('hello')},50); //通用
var str='hello';
setTimeout(function(){f(str)},50); //通用
(2)this问题
setTimeout调用的函数被执行时的上下文是全局,而不再是调用setTimeout方法时的上下文。所以,setTimeout的第一个参数的函数被执行时其this是指向window的,如果需要保留调用setTimeout方法时的this,就需要把当时的this传进去。示例:
function Person(name){
this.name=name;
var f=function(){alert('My name is '+this.name)};
// setTimeout(f,50); //错误
首页 1 2 末页