SetTimeout在FireFox中不起作用但在IE中很好并且想知道为什么?

时间:2014-07-21 13:00:37

标签: jquery

以下是我的代码。无法理解为什么它在IE中工作但在Firefox中不起作用。非常感谢任何帮助。

 $(document).ready(function() {

    var delay = 30000;
    setTimeout(function () {
               window.location.replace = "Index";
    }, delay);

  });

3 个答案:

答案 0 :(得分:4)

更改

window.location.replace = "Index";

window.location.replace("Index");

使用 replace

var delay=30000;
     setTimeout(function () {
                   window.location.replace("Index");
        }, delay);

答案 1 :(得分:0)

似乎firefox不喜欢window.location.replace格式。

尝试使用window.location.href

答案 2 :(得分:0)

这是怎么回事:

window对象的location属性有一个名为replace的属性。 replace属性的内容/值为a function that replaces the current document with a new one

您可以像这样调用此函数:

window.location.replace(<new_url>);

但是当你这样做时,

window.location.replace = "Index";

发生的情况是,replace属性的值已更改为(或替换为)字符串"Index"

现在这很糟糕。因为replace是一个所有JavaScript都应该能够使用的实用函数。

Firefox没有问题。当它创建匿名函数时,它必须检测到您正在执行非法操作。所以setTimeout失败了。

但由于一些奇怪的原因,IE似乎允许这个。既然你告诉我们它已经在IE&#34;中工作了,我很想知道&#34;在IE中工作&#34;手段。 IE做什么?无论IE做什么,它都不应该在这种情况下这样做。