window.history.go(-1);和window.history.back()
页面A跳转到页面B,在完成相应工作后,如果想原封不动的回到页面A,这时候这两个方法就该起作用了,它们不是用来刷新的,是用来回退的。
先看window.history.go(-1):
history是你浏览过的网页的url(简单的说就是网址)的集合,也就是你的浏览器里的那个历史记录。它在js里是一个内置对象,就跟document一样,它有自己的方法,go就是其中一个。
这个方法的参数是一个数字,它指定要定位的url相对当前页面url位置的下标。当前的url下标为0,所以window.history.go(-1)就是要定位到相对当前页面下标为-1的页面,也就是之前刚刚访问的页面。
再举个例子:
你在地址栏访问百度页面(http://www.baidu.com),这时history里就把这个地址加到了它的集合里,并且将下标定为0.
通过搜索,你访问了新浪的页面(http://www.sina.cn),浏览器又将这个网址放在了history里,并将这个网址的下标定为0,而之前访问的百度页面的下标相对于这次访问的新浪页面就变成了-1.
如果接下来你又通过新闻链接打开了网易页面(http://www.163.com),浏览器就会如上一样又把这个网易放到history里,下标为0,而网易之前一个访问的页面新浪,在history里的下标就变成了-1,同理百度的下标就变成了-2.
这时,你通过window.history.go(-1)语句,能使页面定位到当前页面的前一个页面,也就是新浪网,如果你使用的是window.history.go(-2),就能直接到达百度页面。
总得来说,这句代码的功能就跟你点了浏览器上的返回按钮一样。
再看window.history.back();
Windows下的window.history.back()后退后返回的不只是前一个页而是前一个页的状态。如果一个页我修改了3次那必须后退3次才能回到前一个页