history.back,historyback单选框

http://www.itjxue.com  2023-01-22 13:53  来源:未知  点击次数: 

history.go和History.back的区别

Javascript:history.go()和history.back()的用法和区别

简单的说就是:go(-1): 返回上一页,原页面表单中的内容会丢失;back(): 返回上一页,原页表表单中的内容会保留。

history.go(-1):后退+刷新

history.back():后退

之所以注意到这个区别,是因为不同的浏览器的后退行为也是有区别的,而区别就跟Javascript:history.go()和history.back()的区别类似。

chrome和ff浏览器后退页面,会刷新后退的页面,若有数据请求也会提交数据申请。类似于

history.go(-1)

而safari(包括桌面版和ipad版本)的后退按钮则不会刷新页面,也不会提交数据申请。类似于

Javascript:history.back()。

history.back和直接跳到指定页面有什么区别

位置、内容。

1、位置不同。history.back是直接返回当前页的上一页,直接跳到指定页面是可以跳转到想跳转的页面。

2、内容不同。history.back跳转后数据全部消失,是个新页面,直接跳到指定页面跳转后有内容。

怎么实现history.back()返回后刷新历史页面

history.back都是从浏览器缓存读取数据。要刷新就考虑其他代码。

-------------------------------------------------------------------

可以考虑把history.back的步骤分隔,然后重新实现。

如果只通过js来完成,可以考虑以下代码:

//?先获取上一个页面,然后再跳转到那个页面

//?在绝大部分情况下的效果就是history.back()的刷新版本

window.location.replace(document.referrer)

document.referrer:

document.referrer可以引用到上一个页面,这个属性是由浏览器支持的。在不同情况下值可能和history.back不一样,但是绝大部分情况下跟你想要的结果是一致的。

当用户是通过页面导航内部切换到新页面的(例如a标签,或者改变url的代码),document.referrer和history.back指向的页面都是上一个页面。

当用户是通过书签打开网页的,document.referrer是空的,history.back却是可用的,可以返回到点击书签之前的页面。

window.location.replace:

history.back不一定就不会刷新界面:当缓存不可用的时候,还是会刷新的。window.location.replace也不一定会刷新页面,当服务器"明确"告诉浏览器缓存还可以用的时候,浏览器一般不会再刷新页面。不过在一般情况下,使用window.location.replace替换history.back就能达到想要的效果。

所以大可使用window.location.replace(document.referrer)

(责任编辑:IT教学网)

更多