美文网首页移动端的bug
监听微信浏览器的回退事件

监听微信浏览器的回退事件

作者: 小猪_9b2e | 来源:发表于2019-12-04 15:26 被阅读0次

    浏览器回退事件的监听:

    当前所进行的处理是点击返回时关闭页面

    同时对ios微信端popstate自动触发的bug做了处理

    代码如下:

    /**

     * 浏览器回退事件监听

     */

    var listenerBackHandler = {

        param: {

            isRun: false, //防止微信返回立即执行popstate事件

        },

        listenerBack: function () {

            var state = {

                title: "title",

                url: "#"

            };

            window.history.pushState(state, "title", "#");

            window.addEventListener("popstate", function (e) {

                if (listenerBackHandler.param.isRun) {

                    WeixinJSBridge.call('closeWindow');

                }

            }, false);

        },

        //初始化返回事件

        initBack: function () {

            window.addEventListener('pageshow', function () {

                listenerBackHandler.param.isRun = false;

                setTimeout(function () { listenerBackHandler.param.isRun = true; }, 100); //延迟1秒 防止微信返回立即执行popstate事件

                listenerBackHandler.listenerBack();

            });

        }

    }

    listenerBackHandler.initBack(); 

    针对IOS微信端popstate自动触发的解决是用延迟100毫秒来做的处理

    相关文章

      网友评论

        本文标题:监听微信浏览器的回退事件

        本文链接:https://www.haomeiwen.com/subject/mtrlgctx.html