【问题标题】:"window.location.history.go(-2)" possible in major browsers?“window.location.history.go(-2)”在主流浏览器中可能吗?
【发布时间】:2010-09-28 17:16:49
【问题描述】:

正如标题所说,这段代码可以工作吗?它可以在主流浏览器中工作吗?

我问是因为目前我没有资源来测试它,所以我希望能得到一些帮助。

这是我拥有的(未测试):

setTimeout(window.location.history.go(-2), 5000);

谢谢

【问题讨论】:

    标签: javascript html security internet-explorer browser


    【解决方案1】:
    setTimeout(window.location.history.go(-2), 5000);
    

    historywindow 的属性,而不是 location。此外,如果您希望它在延迟后触发,您将需要创建一个延迟调用函数——目前您正在立即调用go(),并将函数的返回值传递给setTimeout,这显然是行不通的。你可能的意思是:

    setTimeout(function() {
        history.go(-2);
    }, 5000);
    

    至于“返回两页”,是的,它几乎适用于所有支持 JS 的浏览器,但用户可能会觉得这种事情令人难以置信的困惑。你确定要这样做吗?

    【讨论】:

      【解决方案2】:

      如您所见here,长期以来所有浏览器都支持此功能(从ff1.0 / opera 5 / ie 3开始)。

      【讨论】:

      • window.location 周围应该有双引号吗?
      【解决方案3】:

      它适用于 Netscape 2.0+、IE3+、Opera 5.12+、Firefox 1+、Konquerer 3.1+、Safari 1+。 你只需要确定,历史上至少有这么多网站,你想回去。

      German reference on SELFHTML

      【讨论】:

        【解决方案4】:

        它从 JavaScript 的第一个版本就已经存在,因此得到了普遍支持。但请注意,您的代码不会像当前那样工作,因为您正在调用go现在,并将函数的结果作为函数引用传递。此外,它只是history,而不是location.history。试试这个:

        setTimeout(function() { history.go(-2); }, 5000);
        

        【讨论】:

        • 刚刚测试过,没有发生任何事情。嗯
        猜你喜欢
        • 1970-01-01
        • 2011-06-21
        • 1970-01-01
        • 2010-12-18
        • 2017-05-04
        • 1970-01-01
        • 2011-04-19
        • 1970-01-01
        • 2016-01-18
        相关资源
        最近更新 更多