2010-07-05 82 views
4

我試圖做一些類似的...如何檢查窗口是否有焦點?

if (window.onblur) { 
    setTimeout(function() { 
     DTitChange(name) 
    }, 1000) 
} else { 
    document.title = dtit 
} 

的window.onblur似乎並沒有被工作,雖然是有什麼我可以替換成?

回答

0

您應該爲window.onblur指定一個函數,在您的問題中,您只測試屬性onblur是否存在。但window.onblur並不總是在每個瀏覽器中正常工作。文章Detecting focus of a browser window顯示瞭如何設置。在你的情況下,它會是這樣的:

function DTitBlur() { 
    /* change title of page to ‘name’ */ 
    setTimeout(function() { 
     DTitChange(name) 
    }, 1000); 
} 

function DTitFocus() { 
    /* set title of page to previous value */ 
} 

if (/*@[email protected]*/false) { // check for Internet Explorer 
    document.onfocusin = DTitFocus; 
    document.onfocusout = DTitBlur; 
} else { 
    window.onfocus = DTitFocus; 
    window.onblur = DTitBlur; 
} 
1

你是什麼意思似乎沒有工作?以下是您目前所說的內容:

If there's an onblur event handler: 
    execute DTitChange once ever second. 
Else 
    document.title = dtit 

這可能不是您想要的。嘗試

window.onblur = function() { 
    setTimeout(function() { DTitChange(name) }, 1000); 
}; 

還確保您設置onfocus處理程序以清除超時,如果您希望它在用戶返回時停止發生。 :)