Apakah ada cara lintas-browser yang dapat diandalkan untuk mendeteksi bahwa tab memiliki fokus.
Skenarionya adalah kami memiliki aplikasi yang melakukan polling secara teratur untuk harga saham, dan jika halaman tersebut tidak memiliki fokus, kami dapat menghentikan polling dan menyelamatkan semua orang dari kebisingan lalu lintas, terutama karena orang-orang penggemar membuka beberapa tab dengan portofolio yang berbeda.
Apakah window.onblur
dan window.onfocus
opsi untuk ini?
javascript
optimization
polling
Fenton
sumber
sumber
Jawaban:
Ya,
window.onfocus
danwindow.onblur
harus bekerja untuk skenario Anda:http://www.thefutureoftheweb.com/blog/detect-browser-window-focus
sumber
onfocus
adalah crossbrowser, di mana acara yang Anda sebutkan hanya untuk IE, saya tidak bisa melihat mengapa ini dianggap sebagai catatan yang baik bagi Anda ..Edit Penting: Jawaban ini sudah usang. Sejak menulisnya, Visibility API ( mdn , example , spec ) telah diperkenalkan. Ini adalah cara yang lebih baik untuk menyelesaikan masalah ini.
AFAIK,
focus
danblur
semuanya didukung pada ... semuanya. (lihat http://www.quirksmode.org/dom/events/index.html )sumber
Saat mencari tentang masalah ini, saya menemukan rekomendasi bahwa API Visibilitas Halaman harus digunakan. Sebagian besar browser modern mendukung API ini sesuai dengan Dapatkah Saya Menggunakan: http://caniuse.com/#feat=pagevisibility .
Berikut ini contoh yang berfungsi (berasal dari cuplikan ini ):
Pembaruan: Contoh di atas dulu memiliki properti awalan untuk peramban Gecko dan WebKit, tetapi saya menghapus implementasi itu karena peramban ini telah menawarkan API Visibilitas Halaman tanpa awalan untuk sementara waktu sekarang. Saya menyimpan awalan khusus Microsoft agar tetap kompatibel dengan IE10.
sumber
Mengejutkan melihat tidak ada yang disebutkan
document.hasFocus
MDN memiliki informasi lebih lanjut.
sumber
Ya itu harus bekerja untuk Anda. Anda baru saja mengingatkan saya pada tautan yang saya temukan yang mengeksploitasi teknik-teknik ini. baca menarik
sumber
Saya akan melakukannya dengan cara ini (Referensi http://www.w3.org/TR/page-visibility/ ):
sumber
Menyenangkan & Mudah Digunakan!
Plugin berikut akan melalui pengujian standar Anda untuk berbagai versi IE, Chrome, Firefox, Safari, dll. Dan menetapkan metode yang Anda nyatakan sesuai. Ini juga menangani masalah-masalah seperti:
Gunakan sesederhana: Gulir ke Bawah untuk ' Jalankan Cuplikan '
sumber
jQuery(window).blur/focus
, yang tidak diinginkan oleh banyak orang, jadi salah satu alasan saya membuat plugin ini. Plugin ini dimaksudkan untuk membantu menyediakan apa yang belum jQuery