LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
页面停留时长的处理方案
炼情苑 2019-02-18

页面停留时长的处理方案

可使用 onbeforeunload 和 onunload 监控页面离开

简单测试代码,注意

window.onbeforeunload=function(){

    updateViewTime();

// return "确定离开";

}

window.onunload=function(){

    updateViewTime();

}

document.addEventListener('webkitvisibilitychange',function(){

    if(document.webkitVisibilityState=='hidden'){

        b=getTime();             

    }else{

    updateViewTime();

    }

});



微信Ios版本中,在底部会出现横条,横条可前进和后退,按以上方案无法捕获这里的事件,可使用以下方案进行处理:

微信ios回退时,会触发popstate事件


$(function(){

    pushHistory();

});

function pushHistory(){

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

        // alert("回退!");

updateViewTime();

        window.history.back();

        //在历史记录中后退,这就像用户点击浏览器的后退按钮一样。


// -2可以促使ios返回的页面刷新

// window.history.go(-2);

        //window.history.go(-1);

        //你可以使用go()方法从当前会话的历史记录中加载页面(当前页面位置索引值为0,上一页就是-1,下一页为1)。


        // self.location=document.referrer;

        //可以获取前一页面的URL地址的方法,并返回上一页。

    }, false); 

    var state = {

        title:"",

        url: "#"

    }; 

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

};


但回退时页面不会重新加载,故事件无法加载,使用 pageshow 和 pagehide 进行监听,并刷新页面

$(function () {

    var isPageHide = false;

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

        if (isPageHide) {

            window.location.reload();

        }

    });

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

        isPageHide = true;

    });

});



参考:

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/onbeforeunload

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/onunload

https://zhuanlan.zhihu.com/p/26733114

推荐文章
评论(0)
联系我们|招贤纳士|移动客户端|风格模板|官方博客|侵权投诉 Reporting Infringements|未成年人有害信息举报 0571-89852053|涉企举报专区
网易公司版权所有 ©1997-2024  浙公网安备 33010802010186号 浙ICP备16011220号-11 增值电信业务经营许可证:浙B2-20160599
网络文化经营许可证: 浙网文[2022]1208-054号 自营经营者信息 工业和信息化部备案管理系统网站 12318全国文化市场举报网站
网信算备330108093980202220015号 网信算备330108093980204230011号
分享到
转载我的主页