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

  • ipsy

    ipsy

    1 EKİM 2012
  • RFS Dan

    RFS Dan

    22 Temmuz 2014
  • bored before i even began

    bored before

    30 Mart 2009