Safari 上的 PageVisibility HTML5 API

Cod*_*ien 1 html javascript safari visibility

我检查了caniuse 的页面可见性支持,它指出 Safari 支持它。

但是,我的 Pagevisibility 实现无法在 Safari 9 上运行。它可以在其他任何地方运行。

见下文:

document.addEventListener("visibilitychange", function() {
  if (document.hidden) {     
     function1();
  } else {
     function2();
  } 
});
Run Code Online (Sandbox Code Playgroud)

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

iow*_*ame 6

    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();
      } 
    });
Run Code Online (Sandbox Code Playgroud)

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

  • 我修复了代码中的错误。在我的测试中,这似乎适用于 Safari 和其他浏览器。 (2认同)