JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法


Posted in Javascript onAugust 05, 2016

在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回、后退、上一页等按钮实现自己的关闭页面、调整到指定页面或执行一些其它操作的需求,那在代码中怎样监听当点击微信、支付宝、百度糯米、百度钱包等app的返回按钮或者浏览器的上一页或后退按钮的事件呢。

我相信很多朋友像我一样,在百度、搜狗里面搜索很久都没找到方法。

下面就来告诉大家怎样监听的方法:

首先我们要了解浏览器的history。

大家知道在页面中我们可以使用javascript window history,后退到前面页面,但是由于安全原因javascript不允许修改history里已有的url链接,但可以使用pushState方法往history里增加url链接,并且提供popstate事件监测从history栈里弹出url。既然有提供popstate事件监测,那么我们就可以进行监听。

返回、后退、上一页按钮点击监听实现代码:

window.addEventListener("popstate", function(e) { 
alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能 
}, false);

虽然我们监听到了后退事件,但是页面还是会返回上一个页面,所以我们需要使用pushState增加一个本页的url,代表本页,大家都非常清楚是#

function pushHistory() { 
var state = { 
title: "title", 
url: "#" 
}; 
window.history.pushState(state, "title", "#"); 
}

当进入该页面,我们就给这个history压入一个本地的连接。当点击返回、后退及上一页的操作时,就进行监听,在监听代码中实现自己操作。

下面是完整的代码:

$(function(){ 
pushHistory(); 
window.addEventListener("popstate", function(e) { 
alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能 
}, false); 
function pushHistory() { 
var state = { 
title: "title", 
url: "#" 
}; 
window.history.pushState(state, "title", "#"); 
} 
});

以上内容只是小编给大家列出的核心代码,大家根据需求适当的添加,修改,删除代码。如果大家在参考本段代码的过程中发现有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
Apr 12 Javascript
UI Events 用户界面事件
Jun 27 Javascript
顶部缓冲下拉菜单导航特效的JS代码
Aug 27 Javascript
Javascript中的包装类型介绍
Apr 02 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
Vue.js组件使用开发实例教程
Nov 01 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
微信小程序switch开关选择器使用详解
Jan 31 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
Jun 28 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 Javascript
Vue按时间段查询数据组件使用详解
Aug 21 Javascript
jQuery实现定位滚动条位置
Aug 05 #Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 #Javascript
浅谈JavaScript中的this指针和引用知识
Aug 05 #Javascript
JavaScript中的this引用(推荐)
Aug 05 #Javascript
JS实现HTML表格排序功能
Aug 05 #Javascript
JavaScript如何实现跨域请求
Aug 05 #Javascript
JavaScript数组操作函数汇总
Aug 05 #Javascript
You might like
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
JS验证身份证有效性示例
2013/10/11 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
centos下更新Python版本的步骤
2013/02/12 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
Python使用folium excel绘制point
2019/01/03 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
如何在python中写hive脚本
2019/11/08 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
新学期教师寄语
2014/04/02 职场文书
党支部对照检查材料
2014/08/25 职场文书
企业贷款委托书格式
2014/09/12 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
项目安全员岗位职责
2015/02/15 职场文书
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android
mysql函数之截取字符串的实现
2022/08/14 MySQL