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

  • Canal de arkyoru

    Canal de ark

    18 Ocak 2007
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012