2016-03-02 139 views
0

我檢查了caniuse for pagevisibility support,它聲明Safari支持它。Safari上的PageVisibility HTML5 API

但是,我的Pagevisibility實現在Safari 9上不起作用。它可以在其他地方使用。

見下文:

document.addEventListener("visibilitychange", function() { 
    if (document.hidden) {  
    function1(); 
    } else { 
    function2(); 
    } 
}); 

有沒有在Safari代碼(JS)PageVisbility一種特定的方式?

+3

@Stephan你真的認爲[標籤:caniuse]是有用的呢?人們會在該標籤下搜索問題嗎?另外,當你編輯問題時,請確保你在該帖子中修復了所有內容。 – DavidG

回答

1
var visibilityHidden, visibilityChange; 
    if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support 
     visibilityHidden = "hidden"; 
     visibilityChange = "visibilitychange"; 
    } else if (typeof document.mozHidden !== "undefined") { 
     visibilityHidden = "mozHidden"; 
     visibilityChange = "mozvisibilitychange"; 
    } else if (typeof document.msHidden !== "undefined") { 
     visibilityHidden = "msHidden"; 
     visibilityChange = "msvisibilitychange"; 
    } else if (typeof document.webkitHidden !== "undefined") { 
     visibilityHidden = "webkitHidden"; 
     visibilityChange = "webkitvisibilitychange"; 
    } 

    document.addEventListener("visibilitychange", function() { 
     if (document[visibilityHidden]) {  
     function1(); 
     } else { 
     function2(); 
     } 
    }); 

參考:https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API