微信浏览器左上角返回按钮监听的实现


Posted in Javascript onMarch 04, 2020

问题描述1:

微信开发的时候,在公众号菜单中打开一个H5页面(如:个人中心),在这个页面上的一些操作,经过多次跳转后,点击左上角的返回按钮,发现会原封不动的返回至上一级页面。

即 公众号菜单->A->B->C,点击返回后,返回了B(且无刷新),目的是要在C直接跳转至A(公众号菜单->A->B->C,C->A),虽然可以在C上添加按钮之类的操作进行跳转(公众号菜单->A->B->C->A),但当点击左上角返回按钮后,依然是会返回C页面,并且,也无法确保用户不去点击左上角的返回按钮。

解决方式:

在C页面中添加如下javascript代码:

$(function(){ 
 pushHistory(); 

 window.addEventListener("popstate", function(e) { //回调函数中实现需要的功能
  alert("我监听到了浏览器的返回按钮事件啦"); 
  location.href='你要跳转的链接'; //在这里指定其返回的地址
 }, false); 
}); 
function pushHistory() { 
 var state = { 
  title: "title", 
  url: "__SELF__" 
 }; 
 window.history.pushState(state, state.title, state.url); 
}

问题描述2:

以上,解决了返回按钮的监听与控制,但是又出现了新的问题,即当从C->A后,点击返回按钮,依然会返回C页面,目的是在A页面点击返回则关闭网页返回至公众号对话页面。

解决方式:

PS:评论区中有人(@一路博客博主)指出新版微信jdk的关闭页面api已经改变,已在代码中标出
本人未亲自测试,各位可以两种方法都试试。

在A页面中添加如下javascript代码:

$(function(){
 pushHistory();

 window.addEventListener("popstate", function(e) {
 // 新版中使用wx.closeWindow()方法
  WeixinJSBridge.call('closeWindow');
 }, false);
});

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

问题描述3:

在微信中进入页面就触发了popstate事件。然后页面会处于一直刷新状态。

解决方式:

定义boolean 变量bool=false。在页面加载后,采用setTimeout方法设置1.5s的超时,在超时执行方法中设置bool=true。

在popstate监听当中增加对bool的判断,当bool=true时,执行内容。
代码如下:

$(function(){ 
 pushHistory(); 
 var bool=false; 
 setTimeout(function(){ 
  bool=true; 
 },1500); 
 window.addEventListener("popstate", function(e) { 
  if(bool){ 
   alert("我监听到了浏览器的返回按钮事件啦");
  } 
 }, false); 
});

到此这篇关于微信浏览器左上角返回按钮监听的实现的文章就介绍到这了,更多相关微信浏览器返回按钮监听内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript与CSS复习(三)
Jun 29 Javascript
jquery ui resizable bug解决方法
Oct 26 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
Apr 02 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
简谈创建React Component的几种方式
Jun 15 Javascript
javascript实现摄像头拍照预览
Sep 30 Javascript
js回调函数仿360开机
Dec 26 Javascript
js实现百度登录窗口拖拽效果
Mar 19 Javascript
JavaScript逻辑运算符相关总结
Sep 04 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
js回调函数原理与用法案例分析
Mar 04 #Javascript
在pycharm中开发vue的方法步骤
Mar 04 #Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 #Javascript
vuex入门最详细整理
Mar 04 #Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 #Javascript
vue 自定义组件的写法与用法详解
Mar 04 #Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 #Javascript
You might like
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
Yii中实现处理前后台登录的新方法
2015/12/28 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
总结一些js自定义的函数
2006/08/05 Javascript
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
Three.js基础学习教程
2017/11/16 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
Python如何实现MySQL实例初始化详解
2017/11/06 Python
django富文本编辑器的实现示例
2019/04/10 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
python matplotlib库的基本使用
2020/09/23 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
会计专业自荐信范文
2013/12/02 职场文书
送货司机岗位职责
2013/12/11 职场文书
员工晚婚的请假条
2014/02/08 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
税务会计岗位职责
2014/02/18 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
请假条应该怎么写?
2019/06/24 职场文书
创业计划书之餐饮
2019/09/02 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers