如何在事件发生之前检测关闭和刷新浏览器选项卡?

时间:2018-03-05 08:26:23

标签: javascript typescript javascript-events

window.onbeforeunload = closingCode;
    function closingCode(e) {
        var evtobj = window.event ? event : e;

        if (evtobj == e) {
            //firefox
            if (!evtobj.clientY) {
if(isRefreshingOrClosingEvent() === 'will be refreshed'){
                      nothing;
                    }
                  if(isRefreshingOrClosingEvent() === 'will be closed'){
                      refreshToken()
                   }
            }
        }
        else {
            //IE
            if (evtobj.clientY < 0) {
                 if(isRefreshingOrClosingEvent() === 'will be refreshed'){
                      nothing;
                    }
                  if(isRefreshingOrClosingEvent() === 'will be closed'){
                      refreshToken()
                   }
            }
        }

        return null;
    }

function isRefreshingOrClosingEvent(){
     if(pageWillBeRefreshed){
            return 'will be refreshed'
     }
     if(pageWillBeCloseded){
            return 'will be closed'
     }
}

function refreshToken(){
    API.refreshToken();
}

如何在发生之前检测结束事件或刷新事件?

我想要这样,因为例如我有一个令牌的60分钟生命周期。 20分钟后,我将刷新页面=&gt; 40分钟的生命,但如果我关闭页面,我还有40分钟。只有在触发关闭事件时,我才想刷新该令牌有60分钟。可能是在50分钟之后我会打开标签,我希望还有10分钟!

0 个答案:

没有答案