标签:function isRun popstate 公众 window null 监听 页面
直接退出到公众号页面
window.history.pushState(null, null, "#"); window.addEventListener('popstate', function(e) { WeixinJSBridge.call('closeWindow'); }, false);
通过监听popstate事件,来判断是否点击返回按钮,比如从A页面跳转到B页面(监听popstate),
然后再跳转到C页面,点击返回的按钮,测试成功,包括安卓版,
但是问题来了,IOS版的微信,是会立即触法popstate事件,导致直接从C页面跳转到A页面,
其他的支付宝(安卓、IOS)、微信(安卓)都是可以,就是微信IOS版不行。
解决方法
var isRun = '' var isRuns function isRuns() { isRun = false // 直接退出到公众号页面 window.history.pushState(null, null, "#"); window.addEventListener('popstate', function(e) { if(isRun == true) { WeixinJSBridge.call('closeWindow'); } }, false); } window.history.pushState(null, null, "#"); window.addEventListener('pageshow', function() { isRun = false; setTimeout(function() { isRun = true; }, 1000); //延迟1秒 防止微信返回立即执行popstate事件 isRuns() });
标签:function,isRun,popstate,公众,window,null,监听,页面 来源: https://www.cnblogs.com/1212dsa/p/11429279.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。