0

我试图通过 javascript 在 1 秒后将用户重定向到不同的页面:

setTimout("document.location.href='new_page.html'", 1000);

但是,在 Internet Explorer 中,这会立即发生,而不是 1 秒后。有什么想法吗?

4

2 回答 2

4

您引用的内容应该可以工作,除了几个小错误:

  1. 您在 setTimeout 中缺少“e”

  2. 你正在使用document.location; 它应该是window.location

刚刚在 IE8 上测试了它,它按预期等待。您是否在某些事件中执行此操作,无论如何都会使页面重新加载,例如表单的submit事件?如果是这样,您将需要取消表单提交以避免取代您的setTimeout代码。你如何做到这一点取决于你如何挂钩事件(例如,如果你使用 DOM0onsubmit="..."处理程序,使用return false;; 如果你使用更现代的东西,你想要event.preventDefault(); 如果你使用 jQuery、Prototype 或其他一些库,请检查他们的文档以了解防止事件默认操作的正确方法)。

现在,尽管它按照您的方式工作,但通常最好使用函数而不是字符串中的代码来执行此操作,例如:

setTimeout(function() {
    window.location.href = 'new_page.html';
}, 1000);

但无论哪种方式都应该有效。

于 2010-05-20T12:22:56.657 回答
0

将其包装在一个函数中。

setTimeout( function() { location.href = 'new_page.html'; }, 1000 );

请注意,如果您总是在页面加载时这样做,那么您应该真正使用元刷新标签。

 <meta http-equiv="refresh" content="1;url=new_page.html">
于 2010-05-20T12:14:49.740 回答