Internet Explorer 8 - setTimout重定向到不同的页面

时间:2010-05-20 12:12:59

标签: javascript internet-explorer-8 settimeout

我试图通过javascript:

在1秒后将用户重定向到另一个页面
setTimout("document.location.href='new_page.html'", 1000);

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

2 个答案:

答案 0 :(得分:4)

你引用的内容应该有效,除了一些小错误:

  1. 您在setTimeout

  2. 中缺少“e”
  3. 您正在使用document.location;它应该是window.location

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

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

    event.preventDefault()

    但无论哪种方式都有效。

答案 1 :(得分:0)

将其包裹在一个功能中。

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

请注意,如果您总是在页面加载时执行此操作,则应该使用元刷新标记。

 <meta http-equiv="refresh" content="1;url=new_page.html">