Làm cách nào để kiểm tra xem trình duyệt có tập trung không?JavaScript/jQuery: Kiểm tra xem cửa sổ có tập trung
Trả lời
Tôi chưa thử nghiệm điều này trong các trình duyệt khác, nhưng có vẻ như nó hoạt động trong Webkit. Tôi sẽ cho bạn thử IE. : O)
Hãy thử nó ra:http://jsfiddle.net/ScKbk/
Sau khi bạn nhấp vào để bắt đầu khoảng thời gian, thay đổi trọng tâm của cửa sổ trình duyệt để xem sự thay đổi kết quả. Một lần nữa, chỉ được thử nghiệm trong Webkit.
var window_focus;
$(window).focus(function() {
window_focus = true;
}).blur(function() {
window_focus = false;
});
$(document).one('click', function() {
setInterval(function() {
$('body').append('has focus? ' + window_focus + '<br>');
}, 1000);
});
@jball - Phải là IE? Trong Webkit và Firefox, mọi kích hoạt của cửa sổ sẽ kích hoạt tiêu điểm. Tôi tự hỏi nếu có một giải pháp cho IE. Ngoài ra, bạn đã thử nghiệm trên trang của mình chưa? Có thể có vấn đề vì jsFiddle sử dụng khung? – user113716
Ngoài ra, nhấn phím tab có vẻ như sẽ phá vỡ nó vĩnh viễn. – jball
Chrome thực sự. Sau khi thử nghiệm thêm, nhận xét đầu tiên của tôi có thể sai - phím tab phá vỡ nó có vẻ phù hợp hơn. – jball
sử dụng phương pháp hasFocus của tài liệu. Bạn có thể tìm mô tả chi tiết và một ví dụ ở đây: hasFocus method
EDIT: Added fiddle http://jsfiddle.net/Msjyv/3/
HTML
Currently <b id="status">without</b> focus...
JS
function check()
{
if(document.hasFocus() == lastFocusStatus) return;
lastFocusStatus = !lastFocusStatus;
statusEl.innerText = lastFocusStatus ? 'with' : 'without';
}
window.statusEl = document.getElementById('status');
window.lastFocusStatus = document.hasFocus();
check();
setInterval(check, 200);
Tôi đã thử ví dụ từ liên kết ở trên và nó hoạt động tốt trong IE7 +, Chrome và FF4. 1 cho bạn. –
Chức năng nhỏ tuyệt vời, hoạt động tốt hơn nhiều so với các jQuery tương đương khác mà tôi đã chạy qua. – Heath
Hữu ích hơn câu trả lời được chấp nhận, tôi gặp sự cố khi tải bộ hẹn giờ trong khi cửa sổ bị mất tiêu điểm. – Kokos
HTML:
<button id="clear">clear log</button>
<div id="event"></div>
Javascript:
$(function(){
$hasFocus = false;
$('#clear').bind('click', function() { $('#event').empty(); });
$(window)
.bind('focus', function(ev){
$hasFocus = true;
$('#event').append('<div>'+(new Date()).getTime()+' focus</div>');
})
.bind('blur', function(ev){
$hasFocus = false;
$('#event').append('<div>'+(new Date()).getTime()+' blur</div>');
})
.trigger('focus');
setInterval(function() {
$('#event').append('<div>'+(new Date()).getTime()+' has focus '+($hasFocus ? 'yes' : 'no')+'</div>');
}, 1000);
});
UPDATE:
tôi sẽ sửa chữa nó, nhưng IE không hoạt động rất tốt
Không nhất quán làm việc trong IE8 trong thử nghiệm của tôi. –
Dường như mờ không phát ra khi chuyển tab. :( –
- 1. Kiểm tra xem phần tử DOM có tập trung
- 2. Kiểm tra xem cửa sổ có bị mất tiêu điểm
- 3. Kiểm tra xem cửa sổ có phải là MessageBox
- 4. Làm cách nào để kiểm tra xem ứng dụng của tôi có tập trung không?
- 5. Kiểm tra xem đó là đối tượng cửa sổ
- 6. Selenium: Kiểm tra cửa sổ bật lên
- 7. Kiểm tra xem div có thể xem được trong cửa sổ không?
- 8. kiểm tra tập trung với Capybara
- 9. trung tâm cửa sổ dicom, chiều rộng cửa sổ
- 10. Kiểm tra cửa sổ WPF với StaticResources
- 11. Mở cửa sổ mới mà không tập trung vào nó
- 12. Làm thế nào để bạn kiểm tra xem một widget có tập trung vào Tkinter không?
- 13. Tiện ích mở rộng của Firefox: kiểm tra xem cửa sổ có bị thu nhỏ
- 14. Cách kiểm tra xem cửa sổ con có tồn tại không?
- 15. Cách kiểm tra xem cửa sổ có đang bị kéo C# WPF
- 16. Cách kiểm tra xem dịch vụ cửa sổ có được cài đặt trong C#
- 17. Kiểm tra xem cửa sổ có trên màn hình hiện tại không?
- 18. kiểm tra xem một số chương trình exe có đang chạy trên các cửa sổ
- 19. Cách kiểm tra xem cửa sổ opencv có bị đóng không
- 20. Phát hiện xem cửa sổ có phải là cửa sổ chính trong ca cao hay không
- 21. Xem liệu div ContentEditable có tập trung
- 22. Kiểm tra Javascript nếu biến là cửa sổ
- 23. Trình kiểm tra thư viện tĩnh cho các cửa sổ?
- 24. VS2012 Thực hiện kết quả kiểm tra xuất hiện trong cửa sổ Kết quả kiểm tra
- 25. Quá trình khởi chạy trong C# Không có cửa sổ điều khiển mất tập trung
- 26. Bạn có thể tập trung cửa sổ bật lên từ Tiện ích mở rộng của Chrome
- 27. Xcode có cửa sổ xem không?
- 28. Kiểm tra xem tập lệnh php có đang chạy không
- 29. Kiểm tra xem thư mục có tập tin hay không
- 30. Mở cửa sổ "Kiểm tra phần tử" qua JS
Xem thêm http://stackoverflow.com/questions/483741/how-to-determine-which-html-page-element-has-focus cũng có thể trả lời câu hỏi này. –
Thử 'document.hasFocus()', trả về boolean. Nó được tích hợp vào thông số kỹ thuật, vì vậy nó có thể được thực hiện mà không cần jQuery. –