history.go('url')问题

时间:2011-06-08 10:20:06

标签: javascript browser browser-history

我已经看到history.go()方法可以有两种类型的参数:

 http://www.w3schools.com/jsref/met_his_go.asp 

但网址根本不起作用。

我使用浏览器的JavaScript控制台来测试这种方法但没有成功。

我知道存在安全问题,您无法读取历史记录条目。你可以回头往前走。

那么为什么在所有js引用中列出这个字符串参数?

3 个答案:

答案 0 :(得分:12)

提供URL作为参数是非标准功能,不适用于所有浏览器。大多数浏览器只接受相对数字,例如1-1

来自MDC documentation(强调我的):

  

[history.go(integerDelta)]从会话历史记录加载页面,该页面由其与当前页面的相对位置标识,例如前一页为-1或下一页为1。当integerDelta超出范围时(例如,当会话历史记录中没有先前访问过的页面时为-1),该方法不会执行任何操作,也不会引发异常。 调用go()不带参数或使用非整数参数无效(与Internet Explorer不同,它支持字符串URL作为参数)

当您使用W3Schools作为学习资源时会发生这种情况; - )

答案 1 :(得分:2)

MDC至少有这个说明:

  

注意:Internet Explorer支持将字符串URL作为参数传递给go();这是非标准的,Gecko不支持。

不知道为什么它列在许多参考文献中。

答案 2 :(得分:2)

如果您想将其与URL一起使用,请使用:

window.location.href="http://www.whereyouwannago.nl/";

URL可能仍然存在向后兼容性