微信浏览器点击系统返回,安卓返回会重载页面回到页面顶部,iOS则返回则会保留之前浏览位置的解决方法...

2023-05-16


后续补充: 页面css设置了height: 100%,来避免使用fixed定位弹窗引起的部分机型兼容问题,因此会在返回的时候回到页面顶部,补充解决办法: 在弹窗出现的时候在设置100%高度,并让文档滚动到之前滚动的位置,弹窗关闭的时候取消高度限制,body滚动还原


在近期做的一个移动端分享到微信的页面时,遇到了这样一个现象:

在A页面中部点击链接跳转到B页面后,按系统返回操作回到A页面时,
在安卓中刷新重载显示页面的顶部开始,
iOS中则直接返回上次浏览位置,保存了用户操作记录;

针对上述问题,在网上查找了相关解决办法,说的都比较概括,用了一天的时间才解决掉这个问题(蠢哭(╥╯^╰╥)),下面将我的方法贴出来,希望能给到像我之前一样走弯路的童鞋一些帮助吧,主要适用于单页面间的跳转。用到了sessionStorage 和 history的replaceState方法。具体代码如下:
html部分:

<a data-h5="1" href="https://segmentfault.com/"><span class="img"><img src="./images/vip/img-book2.png" alt="全球好书"></span<b>如何高效学习</b></a>

js部分:

$('a[data-h5="1"]').on('click', function () {
    // 点击链接记录当前页面滚动位置
    sessionStorage.setItem('scrollTop', $('.body').scrollTop());
});

// 判断当前页面是否返回还是直接跳转的,读取sessionStorage缓存显示页面
if (sessionStorage.getItem('scrollTop') != null && sessionStorage.getItem('loadType') == 'back') {
    // 避免载入延时处理
    setTimeout(function(){
        // 执行缓存信息
        $('.body').scrollTop(sessionStorage.getItem('scrollTop'));
        // 清除上次缓存
        sessionStorage.removeItem('scrollTop');
    },200);

}
// 设置缓存页面加载来源信息,load:直接跳转,back:浏览器返回
sessionStorage.setItem('loadType', 'load');
// 设置浏览器history,用来监测页面返回
replaceHistory(window.location.href);

// 监测浏览器返回事件,设置返回页面缓存状态
window.addEventListener("popstate", function (e) {
    // 设置sessionStorage中页面返回参数标记
    sessionStorage.setItem('loadType', 'back');
}, false);

function replaceHistory(url) {
    var state = {
        title: "title",
        url: url
    };
    window.history.replaceState(state, "title", url);
}



至此,微信浏览器按返回不能保存之前界面的浏览位置信息的问题就解决了,如果有更好的解决办法,欢迎大家一起交流讨论哈~~
一个小问题花费那么多的时间来解决真的很头疼,自身能力真的还差太多。。。修炼中。。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信浏览器点击系统返回,安卓返回会重载页面回到页面顶部,iOS则返回则会保留之前浏览位置的解决方法... 的相关文章

  • 网站服务器备案有什么危害,域名备案对服务器有影响吗

    域名备案对服务器有影响吗 内容精选 换一换 证书在有效期内 xff0c 可多次下载并使用 xff0c 下载后即可在服务器 华为云的或非华为云的均可 上进行部署 待安装证书的服务器上需要运行的域名 xff0c 必须与证书的域名一一对应 xff
  • lodash 核心源码学习(基于4.17.11版本)

    源码地址 https raw githubusercontent com lodash lodash 4 17 11 npm core js 13行 b var undefined b es5之前 undefined 可以被 window
  • 常用邮箱的 IMAP/POP3/SMTP 设置

    通过网上查找的资料和自己的总结完成了下面的文章 xff0c 看完之后相信大家对这三种协议会有更深入的理解 如有错误的地方望指正 POP3 POP3是Post Office Protocol 3的简称 xff0c 即邮局协议的第3个版本 它规
  • 顾维灏谈百度地图数据采集:POI自动处理率达90%

    顾维灏谈百度地图数据采集 xff1a POI自动处理率达90 发布时间 xff1a 2015 12 21 22 37 来源 xff1a cnsoftnews com 作者 xff1a 百度地图还创新研发高精地图 xff0c 并成为国内唯一掌
  • 为何float有效位数为7位?

    为何float有效位数为7位 xff1f 首先我们应该明确一点 xff1a C语言中 xff0c xff05 f表示保留7位有效数字7位有效数字 xff1a 是指 整数部分 和小数部分一共7位 单精度数的尾数用23位存储 xff0c 加上默
  • Python绘制正余弦函数图像

    公众号 xff1a Python编程时光 今天打算通过绘制正弦和余弦函数 xff0c 从默认的设置开始 xff0c 一步一步地调整改进 xff0c 让它变得好看 xff0c 变成我们初高中学习过的图象那样 通过这个过程来学习如何进行对图表的
  • JS函数的工厂模式、构造函数模式、原型模式的区别

    创建对象 JS有六种数据数据类型 xff0c 其中五种属于基本数据类型 xff1a Null Boolean undefined String Number 而其它值都是对象 数组是对象 xff0c 函数是对象 xff0c 正则表达式是对象
  • mac 邮件自动归类

    mac 让邮箱自动为你的邮件归类 不知道你的工作当中 xff0c 是否每天会收到一大推的邮件 xff0c 其中对自己有价值的邮件也许也就是这一大推邮件当中的几封邮件 单这几封邮件往往又会被淹没 巧用邮件分类功能 之前使用邮件没有好好的区研究
  • 层次图和HIPO图---描绘软件结构的图形工具

    层次图和HIPO 图 层次图用来描述软件的层次结构 虽然层次图的形式和描绘数据结构的层次方框图相同 xff0c 但是表现的内容却完全不同 层次图中的一个矩形框代表一个模块 xff0c 方框间的连线表示调用关系而不像层次方框图那样表示组成关系
  • continue函数和break函数的区别

    continue函数 谈及contiune函数 xff0c 很多初学者都把它和break弄混淆 xff0c 今天我自己也特意学习了一下 xff0c 在这里分享给大家 当它们用在循环语句的循环体时 xff0c break用于立即退出本层循环
  • linux下进入root用户登录

    1 打开终端 xff0c 输入sudo passwd u root 输入当前用户的登录密码 xff0c 提示如下标红区域信息 解决方案 xff1a 1 xff09 直接输入命令 xff1a su xff0c 输入当前用户登录密码 2 xff
  • 利用Python爬取电影网站

    usr bin env python coding 61 utf 8 39 39 39 本爬虫是用来爬取6V电影网站上的电影资源的一个小脚本程序 xff0c 爬取到的电影链接会通过网页的形式显示出来 39 39 39 import requ
  • python 提取字符串中的数字组成新的字符串

    方法一 有一个字符串text 61 34 aAsmr3idd4bgs7Dlsf9eAF 34 请将text字符串中的数字取出 xff0c 并输出成一个新的字符串 import re text 61 34 aAsmr3idd4bgs7Dlsf
  • Trie树

    转载自http epic 32o cn article asp id 61 47 xff0c 但是这个地址已经不存在了 所以从维基百科拿来个图进行解释 xff1a http zh wikipedia org wiki Trie 今天在vij
  • 【C#学习笔记】读SQL Server2008

    using System using System Data SqlClient namespace ConsoleApplication class Program static void Main string args SqlConn
  • window class, OO

    Wndows中Window Management 的设计 是很符合OO思想 首先每个Window的定义由WNDCLASS结构定义 在WNDCLASS中我们需要给出 Window class name Window的class style 以
  • regex_match

    原型 xff1a bool regex match InputSequence MatchResults Regex Flags 当模式匹配整个输入序列成功时 xff0c 返回的是true 否则返回false 参数说明 1 InputSeq
  • 关于Docker目录挂载的总结

    Docker容器启动的时候 xff0c 如果要挂载宿主机的一个目录 xff0c 可以用 v参数指定 譬如我要启动一个centos容器 xff0c 宿主机的 test目录挂载到容器的 soft目录 xff0c 可通过以下方式指定 xff1a
  • Wireshark网络抓包(一)——数据包、着色规则和提示

    一 数据包详细信息 Packet Details面板内容如下 xff0c 主要用于分析封包的详细信息 帧 xff1a 物理层 链路层 包 xff1a 网络层 段 xff1a 传输层 应用层 1 xff09 Frame 物理层数据帧概况 2
  • FloatingWindow 悬浮窗开源项目总结

    在Android开发中 xff0c 我们不免会遇到悬浮窗展示的需求 xff0c 以下是本人之前star的悬浮窗的开源项目 xff0c 供大家参考 xff1a 一 FloatingWindowDemo 开源项目地址 xff1a https g

随机推荐

  • yum-config-manager的讲解

    问题描述 xff1a yum是RPM的前端程序 xff0c 对于多软件安装时非常好用 xff0c 在虚拟机中想要安装什么软件都可以使用 yum install xff1a 仓库名 命令来快速调用已经安装的仓库里的软件 xff0c 但有时在安
  • 1024与自己做爱做的事情

    1024是什么 xff1f 1024最早起源于一个名为 草榴社区 的论坛 xff0c 该论坛为了防止灌水 xff0c 新用户在论坛内回复与发帖时 xff0c 被限制为 每隔1024秒才可发帖 xff08 回复 xff09 一次 xff0c
  • Nervos CKB 共识协议 NC-Max:突破 Nakamoto Consensus 吞吐量的极限

    带宽实际上是区块链吞吐量的最大限制 xff0c 在美国旧金山举办的 Scaling Bitcoin Meetup 中 xff0c Nervos amp Cryptape 研究员张韧从 带宽利用率 角度分析了诸多共识协议的效率和可行性 Alg
  • ES6: import和export

    模块化 前端模块化的好处都已经被说烂了 xff0c 归纳为两点 xff1a 避免全局变量污染有效的处理依赖关系 ES2015 xff08 ES6 xff09 终于引入了模块的概念 xff0c 最近学习了下 xff0c 顺便记下笔记 准备工作
  • 6个常见校园网认证客户端故障原因及解决方法

    故障 一 xff1a 本地连接打叉或受限制 xff1b 客户端 提示 无法获取IP信息 可能原因 1 xff0e 网线虚接 2 xff0e 学生端网络 跳线质量太差 3 xff0e 网卡 或网卡驱动程序过久 4 xff0e 交换机的某个端口
  • C语言编程 求两个数的平均值方法(三种方法)

    第一种方法是最常见的 average 61 xff08 a 43 b xff09 2这种方式 xff0c 求两个数的平均值 第二种方法是 当 a lt b 时 averag 61 a 43 b a 2 这里着重介绍的是第三种方法 avera
  • IDEA创建GIT分支并提交到其他分支

    1 xff0c 创建分支 2 xff0c 提交自己的分支 3 xff0c 写代码 xff0c 写完之后切换到你想要提交的分支 xff0c 例子develop 切花分支 xff0c 选择分支 xff0c checkOut 4 下载该分支的更新
  • 【C#学习笔记】写文件

    using System using System IO namespace ConsoleApplication class Program static void Main string args FileStream file 61
  • socket编程——一个简单的例子(转)

    原文地址 xff1a http blog csdn net wind19 article details 6156339 从一个简单的使用TCP例子开始socket编程 xff0c 其基本步骤如下 xff1a server client 4
  • BI 多维数据 处理错误

    哎 响应中的错误和警告 后端数据库访问模块中存在错误 OLE DB 报告列 11 出现了数据类型溢出现象 OLAP 存储引擎中存在错误 处理 Fact Order Sales 分区时出错 xff0c 该分区属于 Analysis 数据库的
  • AutoLISPDCL各种控件

    AutoLISP对话框DCL一共包括23个常用控件和8个固定控件 xff0c 每种控件属于一种类型 xff0c 创建一个DCL对话框窗体就是创建各种控件实例的过程 xff0c 控件是各种属性 事件 方法的集合 按照各种控件的特点 xff0c
  • 完整克隆、链接克隆

    在VMware中安装虚拟主机时 xff0c 若想简便快速的部署多台虚拟主机 xff0c 可先配置一台虚拟主机的一些基础设置 xff0c 然后通过 34 克隆 34 的方式快速部署 而 34 克隆 34 又分为完整克隆和链接克隆 xff1a
  • 急求mapx控件下载!!!

    急求mapx控件下载 Delphi Windows SDK API http www delphi2007 net DelphiMultimedia html delphi 2006121723132453 html 刚刚在网上搜了好久 没
  • 【Android】Mac安装EasyTether导致无法识别设备的问题

    正文 想让手机走PC网络 xff0c 然后抓包 xff0c 于是搜索一番后安装了一个叫EasyTether的软件 还没来得及测试 xff0c 就忙着写代码去了 xff0c 重启MAC以后就发现连不上手机了 xff0c 一开始并没有怀疑是 E
  • C# 操作PDF

    Spire PDF组件概述 Spire PDF是一个专业的PDF组件 xff0c 用于在 NET应用程序中创建 xff0c 编辑 xff0c 处理和阅读PDF文档 支持丰富的PDF文档处理操作 xff0c 如PDF文档合并 拆分 转换 xf
  • 液晶显示器面板型号速查[转贴]

    原文链接 xff1a http itbbs pconline com cn topic jsp tid 61 3132291 生产厂家 显示器型号 61 面板尺寸 面板类型 xff08 面板制造商和面板型号 xff09 例 xff1a 比如
  • Node.js mm131图片批量下载爬虫1.01 增加断点续传功能

    这里的断点续传不是文件下载时的断点续传 xff0c 而是指在爬行页面时有时会遇到各种网络中断而从中断前的页面及其数据继续爬行的过程 xff0c 这个过程和断点续传原理上相似故以此命名 我的具体做法是 xff1a 在下载出现故障或是图片已经全
  • MySQL服务正在启动或停止中,请稍候片刻后再试一次【解决方案】

    相信有些小伙伴在使用数据库的过程中会经常频繁的启动和停止MySQL服务 xff0c 有时候会出现 服务正在启动或停止中 xff0c 请稍候片刻后再试一次 这样的提示 xff0c 如下图所示 于是乎想办法去解决这个问题 xff0c 但是发现连
  • if、else if、else判断语句的几个小例子

    var num 61 parseInt span class hljs string 39 10px 39 span 10 span class hljs keyword if span num gt 10 console log span
  • 微信浏览器点击系统返回,安卓返回会重载页面回到页面顶部,iOS则返回则会保留之前浏览位置的解决方法...

    后续补充 xff1a 页面css设置了height xff1a 100 xff0c 来避免使用fixed定位弹窗引起的部分机型兼容问题 xff0c 因此会在返回的时候回到页面顶部 xff0c 补充解决办法 xff1a 在弹窗出现的时候在设置