브라우저 전환 창 이벤트

5672 단어
방법 출처: 장신욱 블로그.
오늘 브라우저 페이지를 전환할 때 이벤트를 실행해야 하는데 F5는 페이지를 새로 고칠 때 실행할 필요가 없습니다.인터넷에서 해결 방법을 찾았다.
브라우저 호환성을 고려하여 봉인된 공용 대상은 다음과 같은 두 가지 속성이 있습니다.
var pageVisibility = (function() {
    var prefixSupport, keyWithPrefix = function(prefix, key) {
        if (prefix !== "") {
            //  
            return prefix + key.slice(0,1).toUpperCase() + key.slice(1);    
        }
        return key;
    };
    var isPageVisibilitySupport = (function() {
        var support = false;
        if (typeof window.screenX === "number") {
            ["webkit", "moz", "ms", "o", ""].forEach(function(prefix) {
                if (support == false && document[keyWithPrefix(prefix, "hidden")] != undefined) {
                    prefixSupport = prefix;
                    support = true;   
                }
            });        
        }
        return support;
    })();
    
    var isHidden = function() {
        if (isPageVisibilitySupport) {
            return document[keyWithPrefix(prefixSupport, "hidden")];
        }
        return undefined;
    };
    
    var visibilityState = function() {
        if (isPageVisibilitySupport) {
            return document[keyWithPrefix(prefixSupport, "visibilityState")];
        }
        return undefined;
    };
    
    return {
        hidden: isHidden(),   //  tab true, false
        visibilityState: visibilityState(),   //  tab hidden, visible
        visibilitychange: function(fn, usecapture) {   //  tab 
            usecapture = undefined || false;
            if (isPageVisibilitySupport && typeof fn === "function") {
                return document.addEventListener(prefixSupport + "visibilitychange", function(evt) {
                    this.hidden = isHidden();
                    this.visibilityState = visibilityState();
                    fn.call(this, evt);
                }.bind(this), usecapture);
            }
            return undefined;
        }
    };    
})(undefined);

 
필요할 때 객체를 호출하는 visibilitychange 방법:
pageVisibility.visibilitychange(function(){
    if(!pageVisibility.hidden){   //  
        console.log(" ...");
    }
})

좋은 웹페이지 즐겨찾기