如何測試瀏覽器是否有焦點?JavaScript/jQuery:測試窗口是否有焦點
回答
我沒有在其他瀏覽器中測試過,但它似乎在Webkit中工作。我會讓你試試IE。 :O)
試試看:http://jsfiddle.net/ScKbk/
後,您即可啓動間隔,改變瀏覽器窗口的焦點,看結果的變化。再次,僅在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 - 必須是IE?在Webkit和Firefox中,窗口的任何激活都會觸發焦點。我想知道是否有一個IE的解決方法。另外,你在你的網頁上測試過嗎?也許有問題,因爲jsFiddle使用框架? – user113716 2010-08-13 19:39:32
此外,按Tab鍵似乎永久打破它。實際上Chrome實際上是 – jball 2010-08-13 19:39:44
。經過進一步測試,我的第一個評論可能是錯誤的 - 突破它的標籤鍵似乎更一致。 – jball 2010-08-13 19:40:59
使用文件的hasFocus方法。 你可以找到詳細的說明和這裏的例子: hasFocus method
編輯:新增小提琴 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);
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:
我會解決它,但IE瀏覽器不能很好地工作
在我的測試中不一致地在IE8中工作。 – 2010-08-27 15:22:57
切換標籤時,顯然模糊不會觸發。 :( – 2013-11-12 20:41:58
- 1. 檢查ZK窗口是否有焦點
- 2. 檢查窗口是否失去焦點
- 3. 檢測是否沒有EditTexts有焦點
- 4. 如何檢查窗口是否有焦點?
- 5. 是否有任何文檔窗口焦點事件?
- 6. 如何判斷一個窗口是否有焦點? (Win32 API)
- 7. 是否有可能在後臺移動窗口(不偷焦點)
- 8. 檢查窗口是否有焦點與AutoIt
- 9. WPF窗口焦點
- 10. Python窗口焦點
- 11. PyQt窗口焦點
- 12. javafx焦點窗口
- 13. emacsclient窗口焦點
- 14. 檢測輸入是否有焦點
- 15. wmctrl打開的窗口沒有焦點
- 16. Javascript-文檔/窗口有焦點?
- 17. 打開時強制窗口有焦點
- 18. window.setTimeout行爲時,窗口沒有焦點
- 19. 如何檢測焦點窗口是否爲編輯「類型」控件?
- 20. Javascript彈出窗口焦點
- 21. C#獲得焦點窗口?
- 22. PyQt4:停止窗口焦點
- 23. Vista窗口焦點問題
- 24. Java獲取焦點窗口
- 25. Tkinter的主窗口焦點
- 26. tkinter給窗口焦點
- 27. WPF窗口集焦點
- 28. 窗口失去焦點
- 29. 調整MatLab窗口焦點
- 30. LibGDX:有沒有辦法檢查窗口是否在焦點? *解決*
另請參閱http://stackoverflow.com/questions/483741/how-to-determine-which-html-page-element-has-focus它也可以回答這個問題。 – 2011-06-29 15:12:23
嘗試'document.hasFocus()',它返回一個布爾值。 它被構建到規範中,所以它可以在沒有jQuery的情況下完成。 – 2013-02-04 21:41:42