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

  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • HouseholdHacker

    HouseholdHac

    6 Kasım 2007
  • Photoshop Tutorials

    Photoshop Tu

    22 HAZİRAN 2011