SORU
29 HAZİRAN 2009, PAZARTESİ


Bir şekilde, bir tarayıcı penceresi etkin durumda değil tespit var mı?

Etkinlik düzenli olarak yaptığını JavaScript var. Kullanıcı siteye (örneğin, pencere veya sekme odağı yok) bakarak değil, çalıştırmak için iyi olurdu.

Bir şekilde bunu yapmak için JavaScript kullanan var mı?

Referans noktası: eğer kullandığınız pencere aktif değil mi eğer Sohbet ses çalıyor Gmail.

CEVAP
29 HAZİRAN 2009, PAZARTESİ


Aslında bu cevap yazma beri, yeni bir şartname ulaştıöneriW3C durum teşekkürler. Page Visibility API şimdi bize bir sayfa kullanıcı için gizli olduğunda daha doğru bir şekilde algılamasını sağlar.

Geçerli tarayıcı desteği:

  • Chrome 13
  • Internet Explorer 10
  • Firefox 10
  • Opera 12.10[read notes]

Aşağıdaki kod API kullanımı, uyumlu tarayıcılar daha az güvenilir/bulanık odaklama yöntemini düşen geri yapar.

(function() {
  var hidden = "hidden";

  // Standards:
  if (hidden in document)
    document.addEventListener("visibilitychange", onchange);
  else if ((hidden = "mozHidden") in document)
    document.addEventListener("mozvisibilitychange", onchange);
  else if ((hidden = "webkitHidden") in document)
    document.addEventListener("webkitvisibilitychange", onchange);
  else if ((hidden = "msHidden") in document)
    document.addEventListener("msvisibilitychange", onchange);
  // IE 9 and lower:
  else if ("onfocusin" in document)
    document.onfocusin = document.onfocusout = onchange;
  // All others:
  else
    window.onpageshow = window.onpagehide
    = window.onfocus = window.onblur = onchange;

  function onchange (evt) {
    var v = "visible", h = "hidden",
        evtMap = {
          focus:v, focusin:v, pageshow:v, blur:h, focusout:h, pagehide:h
        };

    evt = evt || window.event;
    if (evt.type in evtMap)
      document.body.className = evtMap[evt.type];
    else
      document.body.className = this[hidden] ? "hidden" : "visible";
  }

  // set the initial state (but only if browser supports the Page Visibility API)
  if( document[hidden] !== undefined )
    onchange({type: document[hidden] ? "blur" : "focus"});
})();

onfocusin onfocusout Diğer onfocus onblur, onpageshow onpagehide kullandığı iOS dışında kullanırken 10**.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • UKF

    UKF

    2 Aralık 2009