首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js监听手机点击物理返回js监听pc端点击浏览器返回

之前在项目中遇到一个问题,就是在微信网页上面本来是有返回按钮的,但是大多数人都为了方便,会使用安卓手机自带的物理返回,这个返回按下后,就会按照你浏览器的栈存储的路径来一层一层返回,就不执行你页面上的那个返回按钮的操作了...; 当onpopstate被触发时,检查event.state是否等于STATE,如果相等,表示页面发生了后退(按下返回或者浏览器的后退按钮),则把这次行为当作是返回被按下了(把点击浏览器的后退按钮也误算进来了...,这个写入的状态就没有,如果你没有后退页面(还在当前页面),上次那个监听的操作执行完后,你还需要监听这个物理返回,这时候你就需要再上次那个操作完之后再使用histroy.pushState再写入一次之前写入的那个状态...,这样下次会继续监听那个物理返回,否则下次你再点击那个返回的话,就会直接返回浏览器的栈的上一级 不过这个方法有些缺陷: 如果项目本身使用了pushState,则历史记录会有瑕疵(多了一个历史); 浏览器的后退按钮点击以及调用...history.back()也会被当成按下了返回

9.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    js判断页面是否是通过浏览器后退按钮返回打开的

    分享一个bug的处理方法 # 背景 最近使用uni-app开发项目时遇到了一个bug,需求是需要在两个平台之间切换,A平台登录后要选择身份,选完后带着token进入另外一个平台B的个人空间,点击个人空间顶部的个人信息区域又可以切换到...这样子就产生了一个问题,点击身份的时候会生成新的token,但是页面是允许返回的所以url地址栏中的历史token还在,所以就会基于这个token触发请求导致接口报了Token验证失败的错误,一番搜索之后终于找到了解决办法...short type; readonly attribute unsigned short redirectCount; [Default] object toJSON(); }; type 属性返回值为...(用户通过刷新,包括JS调用刷新接口等方式访问页面) 2 : TYPE_BACK_FORWARD Navigation where the history handling behavior is set...所以我们只要判断type属性为2时就可以知道页面是通过返回按钮打开的,然后开头的问题就可以据此加判断来解决token异常。 ?

    17K20

    实现微信小程序返回多级页面

    本文主要介绍微信小程序返回多级页面的实现方法的相关资料 微信小程序返回多级页面的实现方法 微信小程序开发中,返回上一页是很普遍的操作,最常见的是点击手机返回点击自定义的按钮返回上一页这两种情况。...点击手机返回我们不需要做处理,如果是自定义按钮实现返回效果,就要调用微信提供的 API wx.navigateBack(OBJECT) 也可以通过 wx.navigateBack 方法实现返回多级页面...({ delta: 2 }) 但是有些时候,我们需要实现点击手机返回,也返回上两页或者多页,这样子就不能直接用上面的方法来处理了。...实现的思路如下: ① 在页面 C 的 onUnload 方法里面判断是否可以返回前 n 页,通过 getCurrentPages() 方法可以获取当前的页面栈,根据页面栈的长度判断可以返回的层数,并且可以给所有页面的...data 设置参数,这里以返回上两页为例: //这里是页面 C 的 onUnload 方法 onUnload: function() { var that = this //判断页面栈里面的页面数是否大于

    2.1K20

    JS判断当前设备属于哪种客户端并让移动端可调试

    1 判断当前设备属于何种客户端 1.1 通过navigator.userAgent判断 这是原生js的语句,可以直接拿来使用 // 返回由客户机发送服务器的user-agent 头部的值 const...方法 描述 Mobile device.mobile() 判断是否属于手机移动设备方法 Tablet device.tablet() Desktop device.desktop() 判断是否属于PC...客户端 iOS device.ios() 判断是否属于iOS客户端 iPad device.ipad() 判断是否属于平板电脑 iPhone device.iphone() 判断是否数据iPhone手机...3.2 手机移动端效 点击右下角的绿色vConsole图标按钮进入调试模式 写文不易,欢迎读者小伙伴们动动你的手指点个赞和右下角的【在看】,谢谢!...--END-- 4 参考阅读 【1】js分别判断手机、电脑、iPad(https://juejin.cn/post/7033793636760453133)

    1.2K40

    【uniapp】微信小程序2024手机号快速验证及无感登录教程(内附代码)

    目录 前言 思路 前端 后端代码 无感登录 onload事件 无感登录方法 登录判断 后端 mini_login2 最后 前言 最近注册公司,可以注册具有支付能力的小程序,各种材料加备案、认证差不多花了一个月的时间...,打算接入支付后,接入一个快速注册的组件,给用户带来便捷的操作体验,发现uniapp的文档不多,于是自己踩坑,本次简单记录一下,方便以后使用回顾 思路 手机号快速验证->数据库判断是否有数据->没有则注册...ifdef MP-WEIXIN --> 手机号一登录...,将openid记录到数据库,用户在点击收取按登陆前进行调用判断,可以省去一笔开支 onload事件 onShow() { // #ifdef MP-WEIXIN //小程序登录检测 this.mini_login...执行查询 $result = $conn->query($sql); if ($roows=mysqli_fetch_assoc($result)) { //success // 查到数据直接返回手机号进行登录

    79200

    微信朋友圈如何自动点赞

    我这个朋友圈自动点赞就是基于Autojs开发的,Autojs我的理解就是在Android用来操控手机的平台,它提供很多Android 系统API可以供你用Js调用,就是依赖Autojs这些Api我才能实现朋友圈自动点赞...实现 启动微信后可能微信停留在上次使用后的页面,没有朋友圈入口,所以我们得先返回朋友圈主界面。这时候我们只需要连续点左上角的返回,点按多次后一定返回微信主界面。     ...接下来点击这个点的坐标就可以调出点赞和评论。   接下来就是如何区分出一条朋友圈是否已经被点过赞。   ...我直接说吧,点赞后这个爱心的位置会左移,只要判断X坐标是465那个位置的像素点是否是白色就能区分出是否点过赞。...,如果没找到点赞按钮或者已点赞返回false,做法是否继续的判断 var isSucceed = true; // 扫描出点赞评论按钮的位置,两个点的ARGB颜色为-11048043

    6.1K21

    Python自动化收取蚂蚁森林能量,不错过暗恋的她

    配置好4个参数,第一个参数是手机操作系统,第二个参数是手机型号,在设置中可以找到,第三、四参数是app的两个特定值,点击start session就可以操控手机。 ?...下面就是模拟点击元素操作了,找app元素的方法如下: ? 只需用客户端appium打开手机APP,然后将鼠标放在需要点击的部位,在右侧就能找到该部位的元素。然后依次点击下图按钮: ?...如图所示,我需要点击一次点击进入每个好友的主页,我采取的方式是只点击进入第一个框所在的坐标,然后模拟向上滑动1个框的高度,这样依次就可以点击到每个好友,代码如下: ?...然后再进一步分析能力球能否能收取,很简单,只需要判断每个classname的text是否含有“能量”这2个字就ok,因为不可收取的能量球不含这两个字,代码如下: ?...为了防止有的能量没到时间,到最后一个好友时,需要返回顶端重新开始检测,我采取的方式是连续点击两次左上角的返回,然后再重复上述的点击“查看更多好友”步骤,代码如下: ?

    2K50

    butterfly文章页面上下篇按钮UI调整

    点击查看更新记录 更新记录 2022-03-16: 基本功能逻辑实现 编写了电脑端的悬停卡片样式,且左右分离 2022-03-15: 基本功能逻辑实现 实现 UI 分离 编写了手机端和电脑端的按钮样式...编写了手机端的悬停卡片样式 点击查看参考教程 参考方向 教程原贴 参考了事件监听动作的语法 addEventListener 监听dom元素是否在屏幕内的示例 JS判断指定dom元素是否在屏幕内的方法实例...思路分析 我试图通过将文章底部的按钮改至左右两侧,类似翻页,同时添加悬停动作,通过css对兄弟相邻元素的hover监测来控制显隐,悬停按钮时在页面正中显示对应文章卡片。...毕竟butterfly目前的上下篇很贴心的提供封面,标题这两个元素。...STYLUS 新建 [Blogroot]\themes\butterfly\source\js\fixed-pagination.js, 这个 js 的作用就是提供滚动监测,这里因为翻页按钮是常态隐藏的

    1.7K20

    「Web编程API」- 04

    三个事件的执行顺序 keydown -- keypress -- keyup 1.1.2 键盘事件对象 使用keyCode属性判断用户按下哪个 // 键盘事件对象中的keyCode...; // 我们可以利用keycode返回的ASCII码值来判断用户按下了那个 if (e.keyCode === 65) { alert('您按下的a');...document.querySelector('.jd'); // 给输入框注册keyup事件 jd_input.addEventListener('keyup', function() { // 判断输入框内容是否为空...con.style.display = 'none'; }) // 给输入框注册获得焦点事件 jd_input.addEventListener('focus', function() { // 判断输入框内容是否为空...于是,JS 中出现同步任务和异步任务。 同步 前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。

    88920

    JavaWeb day3 JavsScript 入门

    true_value : false_value 3.5.1 \==和===区别 概述: ==: 判断类型是否一样,如果不一样,则进行类型转换 再去比较其值 ===:js 中的全等于 判断类型是否一样...完成以下需求: 当输入框失去焦点时,验证输入内容是否符合要求 当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不合符则阻止表单提交 8.2 环境准备 下面是初始页面 <!...当手机号输入框失去焦点时,判断输入的内容是否符合 长度是 11 位 规则,不符合使 id='tel_err' 的span标签显示出来,给出用户提示。 代码如下: //1....= function() { //1.3 获取用户输入的手机号 var tel = telInput.value.trim(); //1.4 判断手机是否符合规则:长度 11...正则表达式定义字符串组成的规则。也就是判断指定的字符串是否符合指定的规则,如果符合返回true,如果不符合返回false。 正则表达式是和语言无关的。

    7.5K10
    领券