一、创建通用的监听方法

/* 监听页面显示隐藏 */
function onPageVisibility(functions){
    var _t = {};

    var onShowCall = function(){
        if(!functions || !functions.show){
            return;
        }
        window.clearTimeout(_t.showTime);
        _t.showTime = window.setTimeout(function(){
            functions.show();
        },100);
    }

    var onHideCall = function(){
        if(!functions || !functions.hide){
            return;
        }
        window.clearTimeout(_t.hideTime);
        _t.hideTime = window.setTimeout(function(){
            functions.hide();
        },100);
    }

    document.addEventListener('visibilitychange', function(){
        var visibility = document.visibilityState;
        if(visibility == 'visible'){
            onShowCall();
        }else if(visibility == 'hidden'){
            onHideCall();
        }
    });

    window.addEventListener("pageshow", function(){
        onShowCall()
    }, false);

    window.addEventListener("pagehide", function(){
        onHideCall();
    }, false);
}

二、使用监听方法

onPageVisibility({
    show:function(){
        console.log(`==== [页面显示] ====`)
    },
    hide:function(){
        console.log(`==== [页面隐藏] ====`)
    }
})

作者:黄河爱浪 QQ:1846492969,邮箱:helang.love@qq.com

本文原创,著作权归作者所有,转载请注明原链接及出处。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐