【发布时间】:2010-09-28 17:16:49
【问题描述】:
正如标题所说,这段代码可以工作吗?它可以在主流浏览器中工作吗?
我问是因为目前我没有资源来测试它,所以我希望能得到一些帮助。
这是我拥有的(未测试):
setTimeout(window.location.history.go(-2), 5000);
谢谢
【问题讨论】:
标签: javascript html security internet-explorer browser
正如标题所说,这段代码可以工作吗?它可以在主流浏览器中工作吗?
我问是因为目前我没有资源来测试它,所以我希望能得到一些帮助。
这是我拥有的(未测试):
setTimeout(window.location.history.go(-2), 5000);
谢谢
【问题讨论】:
标签: javascript html security internet-explorer browser
setTimeout(window.location.history.go(-2), 5000);
history 是 window 的属性,而不是 location。此外,如果您希望它在延迟后触发,您将需要创建一个延迟调用函数——目前您正在立即调用go(),并将函数的返回值传递给setTimeout,这显然是行不通的。你可能的意思是:
setTimeout(function() {
history.go(-2);
}, 5000);
至于“返回两页”,是的,它几乎适用于所有支持 JS 的浏览器,但用户可能会觉得这种事情令人难以置信的困惑。你确定要这样做吗?
【讨论】:
如您所见here,长期以来所有浏览器都支持此功能(从ff1.0 / opera 5 / ie 3开始)。
【讨论】:
它适用于 Netscape 2.0+、IE3+、Opera 5.12+、Firefox 1+、Konquerer 3.1+、Safari 1+。 你只需要确定,历史上至少有这么多网站,你想回去。
【讨论】:
它从 JavaScript 的第一个版本就已经存在,因此得到了普遍支持。但请注意,您的代码不会像当前那样工作,因为您正在调用go现在,并将函数的结果作为函数引用传递。此外,它只是history,而不是location.history。试试这个:
setTimeout(function() { history.go(-2); }, 5000);
【讨论】: