页面返回上一页浏览位置
2019-08-14 10:05:53来源:博客园 阅读 ()
1.如果上一页是静态页面,可以用 history.go(-1)方法;
go() 方法可加载历史列表中的某个具体的页面。
该参数可以是数字,使用的是要访问的 URL 在 History 的 URL 列表中的相对位置。(-1上一个页面,1前进一个页面)。或一个字符串,字符串必须是局部或完整的URL,该函数会去匹配字符串的第一个URL。
该方法返回上一页,不刷新页面,但是会执行js;
例子:
<a href="javascript:;" onclick="javascript:history.go(-1);">Back</a>
点击back 页面就会返回上一个页面的浏览位置
2.我在工作中遇到的,页面采用了vue,页面每次加载都会去请求数据,用history.go(-1)方法返回上一页,上一页的页面因为重新请求数据,页面不会定位到上次浏览的位置;
解决思路:使用onbeforeunload(事件在即将离开当前页面(刷新或关闭)时触发)方法在页面离开时把滚动条位置和页面文本高度放到cookie中,当页面刷新或重新加载时取出滚动条位置和页面文本高度,设置到页面。
代码如下:
window.onbeforeunload = function () {
var scrollPos, height;
if (typeof window.pageYOffset != 'undefined') {
scrollPos = window.pageYOffset;
} else if (typeof document.compatMode != 'undefined' &&
document.compatMode != 'BackCompat') {
scrollPos = document.documentElement.scrollTop;
} else if (typeof document.body != 'undefined') {
scrollPos = document.body.scrollTop;
}
height = document.body.scrollHeight;
document.cookie = "scrollTop=" + scrollPos; //存储滚动条位置到cookies中
document.cookie = "height=" + height; //存储滚动条位置到cookies中
}
new Vue({
el:'#app',
updated: function () {
var height;
//获取之前的页面高度
if (document.cookie.match(/height=([^;]+)(;|$)/) != null) {
var arr = document.cookie.match(/height=([^;]+)(;|$)/); //cookies中不为空,则读取页面高度
height = parseInt(arr[1]);
}
//获取之前的滚动条位置
if (document.body.scrollHeight == height) {
if (document.cookie.match(/scrollTop=([^;]+)(;|$)/) != null) {
var arr = document.cookie.match(/scrollTop=([^;]+)(;|$)/); //cookies中不为空,则读取滚动条位置
document.documentElement.scrollTop = parseInt(arr[1]);
document.body.scrollTop = parseInt(arr[1]);
}
}
}
})
原文链接:https://www.cnblogs.com/yuanqt/p/11125913.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- js调用刷新界面的几种方式 2020-03-05
- 默认让页面的第一个控件选中的javascript代码 2020-02-20
- web如何实现页面分页打印 2020-02-14
- 页面刷新时记住滚动条的位置jquery代码 2019-12-06
- 在HTML页面加载完毕后运行某个js的实现方法 2019-11-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash