2013-06-15 37 views
5

Tôi tự hỏi liệu có cách nào để tắt tính năng làm mới trang tự động khi trang bị mất tiêu điểm hay không. Tôi có thiết lập để làm mới khi tăng tiêu điểm một lần nữa bằng cách sử dụng điều này:tắt tính năng làm mới trang khi mất tiêu điểm

window.onblur= function() {window.onfocus= function() {location.reload(true)}}; 

mà tôi tìm thấy từ here. Ban đầu tôi đã làm mới trang tự động bằng cách sử dụng:

<meta http-equiv="refresh" content="60"/> 

Tải lại trang này sau mỗi 60 giây bất kể trạng thái.

Tôi muốn làm cho trang có tính năng tự động làm mới chỉ khi được lấy nét với lần làm mới ban đầu sắp tới khi trang này lấy nét lại. Sau khi đạt được tiêu điểm, nó sẽ làm mới tại khoảng thời gian cho đến khi tiêu điểm bị mất.

Cảm ơn

+0

Bạn có thể thử sử dụng API hiển thị trang - http://www.w3.org/TR/page-visibility/ – gearsdigital

Trả lời

5

Bạn không có thể ghi đè loại làm mới, có lẽ bạn nên sử dụng một bộ đếm thời JS để làm mới, một cái gì đó như thế này (sau khi loại bỏ các <meta http-equiv="refresh" content="60" /> tag):

var hasFocus; 

window.onblur = function() { 
    hasFocus = false; 
} 

window.onfocus = function(){ 
    hasFocus = true; 
} 

setInterval(reload, 60*1000); 

function reload(){ 
    if(hasFocus){ 
     location.reload(true); 
    } 
} 
1

tôi đã kết thúc sửa đổi mã từ Mostafa Torbjørn Berg để duy trì làm mới lấy nét và tự động làm mới trang 60 giây một lần trong khi trang có tiêu điểm.

var hasFocus= true; 
window.onblur = function() { 
    hasFocus = false; 
} 
window.onfocus = function(){ 
    location.reload(true); 
} 
setInterval(reload, 60*1000); 
function reload(){ 
    if(hasFocus){ 
     location.reload(true); 
    } 
} 
Các vấn đề liên quan