setTimeout() 的作用是指定在多少毫秒后执行一个 JS 函数或者表达式代码。setTimeout 的用法、语法、参数如下:
```javascript
setTimeout(code, millisec);
```
setTimeout 参数说明:
- code 是必需参数。要调用的函数后要执行的 JavaScript 代码串。
- millisec 是必需参数。在执行代码前需等待的毫秒数。毫秒和秒之间的换算是:1000毫秒 = 1秒
以下是一个使用 setTimeout 实现页面跳转的示例代码(1秒后页面跳转到指定的 URL):
```html
function go() { //定义函数
window.location = "main.html"; //页面跳转
}
window.setTimeout("go()", 1000); //1秒后执行函数go
```
但是以上 JS 代码是无法兼容火狐的,这主要是因为 IE 和火狐的浏览器引擎是不同的。为了让这段页面跳转 JS 代码兼容 IE、火狐、SAFARI、OPERA,可以使用以下代码:
```html
function go() { //定义函数
window.location = "main.html"; //页面跳转
}
window.setTimeout(function() { go(); }, 1000); //1秒后执行函数go
```
它完美地兼容了各主流浏览器,特此写出来和大家分享。值得注意的是实现页面跳转的 JS 代码我们习惯写作 location.href=页面地址,而这段代码在火狐下也是不能运行的,你需要写作 window.location=页面地址。
以下是重构后的代码:
```html
var int = setInterval(function() {
clock();
}, 50);
function clock() {
var t = new Date();
document.getElementById("clock").value = t;
}
function stopInterval() {
int = window.clearInterval(int);
}
```
在这个例子中,我们创建了一个名为`clock`的函数,用于更新输入框中的日期。我们使用`setInterval`函数每隔50毫秒调用一次`clock`函数。当用户点击“停止间隔”按钮时,`stopInterval`函数会被调用,它会使用`window.clearInterval`取消对`clock`函数的周期性执行。