<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script>
function errorTimeOut(strInTest) {
alert('I will wait 10 seconds, but no variables (error: Uncaught ReferenceError: strTest is not defined). ' + strInTest)
}
function errorAlert() {
var strTest = "I am here!";
setTimeout("errorTimeOut(strTest)", 10000);
}
function correctTimeOut(strInTest) {
alert('I was waiting 20 seconds, and everything is ok: ' + strInTest)
}
function correctAlert() {
var strTest = "I am here!";
setTimeout(function() {
correctTimeOut(strTest)
}, 20000);
}
setTimeout(alert('I am fired immediately'), 10000);
errorAlert();
correctAlert();
</script>
</head>
<body>
</body>
</html>
As you can see from previous code, setTimeout(alert('I am fired immediately'), 10000); will not work.
setTimeout("alert('I will wait')", 10000); - this will work, alert under quotes, but you can not pass varibles.
And the code:
function correctAlert() {
var strTest = "I am here!";
setTimeout(function() {
correctTimeOut(strTest)
}, 20000);
}
Will work properly.