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 相关文章推荐
浅谈JS中的!=、== 、!==、===的用法和区别
Sep 24 Javascript
基于JavaScript实现全选、不选和反选效果
Feb 15 Javascript
JavaScrip数组删除特定元素的几种方法总结
Sep 06 Javascript
浅谈Node.js 沙箱环境
May 15 Javascript
node thread.sleep实现示例
Jun 20 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
Jan 15 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
javascript异步编程的六种方式总结
May 17 Javascript
javascript实现日历效果
Jun 17 Javascript
javascript实现时间日期的格式化的方法汇总
Aug 06 Javascript
快速解决element的autofocus失效问题
Sep 08 Javascript
浅谈Vue的computed计算属性
Mar 21 Vue.js
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
各种战术和打法的原创者
2020/03/04 星际争霸
一段php加密解密的代码
2006/10/09 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
深入理解python中的atexit模块
2017/03/07 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
详解Python正则表达式re模块
2019/03/19 Python
关于python中密码加盐的学习体会小结
2019/07/15 Python
python如何保证输入键入数字的方法
2019/08/23 Python
运动会稿件50字
2014/02/17 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
学习退步检讨书
2014/09/28 职场文书
机动车登记业务委托书
2014/10/08 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
质量整改通知单
2015/04/21 职场文书
小学生教师节广播稿
2015/08/19 职场文书
Python如何将list中的string转换为int
2022/07/15 Ruby