2010-08-13 27 views
24

Có cách nào mà khi tôi nhấp vào trình duyệt của mình và tập trung vào nó để chạy một phương thức một lần không? Và sau đó khi trình duyệt mất tập trung và sau đó lấy lại tiêu điểm để chỉ chạy lại phương thức đó một lần nữa.sự kiện trình duyệt cho window.focus()

Xin cảm ơn,

thanh.

Trả lời

39

Bạn có thể đính kèm focusblur trình xử lý sự kiện vào đối tượng window để theo dõi xem cửa sổ bị mất hay mất tiêu điểm (xem http://jsfiddle.net/whQFz/ cho ví dụ nhỏ). window áp dụng cho ngữ cảnh trình duyệt hiện tại (để có thể là cửa sổ, tab, khung, v.v.).

Lưu ý: Sự kiện focus sẽ kích hoạt mỗi khi cửa sổ lấy nét và sự kiện blur sẽ kích hoạt mỗi lần mất tiêu điểm. Một ví dụ về thứ gì đó lấy nét ra khỏi cửa sổ là một cửa sổ alert. Nếu bạn cố gắng cảnh báo trong trình xử lý sự kiện onfocus, bạn sẽ nhận được một chuỗi thông báo vô hạn!

// Set global counter variable to verify event instances 
var nCounter = 0; 

// Set up event handler to produce text for the window focus event 
window.addEventListener("focus", function(event) 
{ 
    document.getElementById('message').innerHTML = "window has focus " + nIndex; 
    nCounter = nCounter + 1; 
}, false); 

// Example of the blur event as opposed to focus 
// window.addEventListener("blur", function(event) { 
// document.getElementById('message').innerHTML = "window lost focus"; }, 
// false); 
+5

Làm thế nào là nó có khả năng tương thích trình duyệt? –

12
$(document).ready(function() { $(window).one("focus", SomeFocusMethod); }); 

var SomeFocusMethod = function() 
{ 
    // do stuff 
    $(window).one("blur", SomeBlurMethod); 
} 

var SomeBlurMethod = function() 
{ 
    // do stuff 
    $(window).one("focus", SomeFocusMethod); 
} 
+2

Xin vui lòng bao gồm một bình luận cho downvote như này xuất hiện, với tôi ít nhất, là một bổ sung chấp nhận được cho câu hỏi này. –

+0

Nó không phải là một câu trả lời chấp nhận được, vì không có phương thức .one(), chỉ có một phương thức .on(), tôi đã sửa chữa bạn trả lời. –

+11

Có một phương pháp 'một' trong jQuery và nó khá tiện dụng: https://api.jquery.com/one/ – Lindsay

Các vấn đề liên quan