Safari 上的 PageVisibility HTML5 API

PageVisibility HTML5 API on Safari

我检查了 caniuse for pagevisibility support,它说 Safari 支持它。

但是,我的 Pagevisibility 实现在 Safari 9 上不起作用。它在其他任何地方都有效。

见下文:

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

在 Safari 中是否有特定的方式来编写 (JS) PageVisbility?

    var visibilityHidden, visibilityChange;
    // Opera 12.10 and Firefox 18 and later support 
    if (typeof document.hidden !== "undefined") {
        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