2009-05-06 21 views
7

Sayfam, bildirim penceresi yalnızca arka planda olduğunda bildirim yapmalıdır. Odak durumunun değiştiğini görmek için window.onfocus ve window.onblur olaylarını takip edebilirim. Ancak, pencerenin odaklanıp yüklenmeyeceğini bilmiyorum, çünkü örneğin bir arka plan sekmesinde yüklenebilir.Tarayıcı penceresinin odaklanıp odaklanmadığını nasıl tespit edebilirim?

onfocus/onblur olayına başlamadan önce sesleri çalmayı veya çalmamayı nasıl karar verebilirim?

cevap

2

Yalnızca yüklü olduğunu düşündüğünüzde, bulanık bir durum varsa ve herhangi bir olay türü (keydown/mousemove) alır almaz duruma odaklanmak için durumu değiştiremez misiniz?

+0

Bu iyi bir fikir. Mükemmel bir çözüm değil ama işe yarayacak en iyi şey olabilir. – Peeja

+2

'mousemove', farenizi bulanık bir pencerede hareket ettirseniz bile tetiklenir, bunun yerine' mousedown' komutunu kullanın. Burada deneyin: http://www.quirksmode.org/dom/events/tests/mousemove.html –

0

Sayfa ilk açıldığında (ön planda) onfocus olayı tetiklenmelidir. En azından FF3/IE8'de.

Böylece başlangıçta sesleriniz olabilir, onfokus tetiklendiğinde onları kapatabilir ve onblur tetiklendiğinde tekrar açabilirsiniz.

+0

Yeni-sekmeye geçiş tercihi kapalıyken birisi yeni bir sekmeye açıldığında bile mi? (Bunu söylemek istemiyor, sormak istediğim için soruyorum.) – chaos

+0

Benim için, yeni bir sekmede açtığımda (arka planda), onfocus tetiklenmedi. Sekmeye geçtiğimde, tetiklendi. Eğer seslerle başladığınızda, bu işe yaramazsa, doğru mu? Sekme ön planda açılırsa, sesler açık olacaktır, ancak onfocus olayı onları hemen kapatır. Sekme arka planda açılırsa, o sekmeye geçene kadar ses açık kalır. –

+0

IE8'de de aynı şekilde çalışıyor gibi görünüyor. –

İlgili konular