如何檢測時用戶focus
在這個選項卡中,當用戶無焦點的當前選項卡 我想這代碼:焦點標籤事件的Javascript
window.onfocus = function() {
alert('Got focus');
}
爲什麼這不是工作?
如何檢測時用戶focus
在這個選項卡中,當用戶無焦點的當前選項卡 我想這代碼:焦點標籤事件的Javascript
window.onfocus = function() {
alert('Got focus');
}
爲什麼這不是工作?
你正在尋找的事件是visibilityChange
https://developer.mozilla.org/en-US/docs/Web/Events/visibilitychange
當事件如果被炒了,你可以檢查網頁是否可見通過文件[隱藏]。查看https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API作爲一個工作示例。
這是一個跨瀏覽器解決方案嗎? – christopher
雖然這適用於很多情況,但它確實會跟蹤可見性,而不是專注於什麼。因此,如果您打開了兩個瀏覽器窗口並選擇第二個,則該事件不會觸發。當然,這取決於情況。 – GMchris
瀏覽器支持顯示在第一個鏈接的底部,但所有最近的瀏覽器都支持它。 – Mijamo
這是當前標籤獲得或失去焦點時用於跟蹤的API。你可以像這樣拼寫它,它幾乎適用於所有的瀏覽器。我建議使用的語法如下:
window.addEventListener('focus', function(e){
console.log('Focused');
}
window.addEventListener('blur', function(e){
console.log('Unfocused');
}
一個原因,我能想到的不觸發事件是,你坐在大多是在瀏覽器的控制檯。如果開發工具是您實際「關注」的,那麼Window不會收到焦點或藍色事件。
如果你可以提供一個JSFiddle,我會認爲這是一個更完整的答案。 – christopher
結果面板在內部點擊時應顯示「聚焦」,而在外部點擊時顯示爲「未聚焦」。這也應該用於更改標籤。 https://jsfiddle.net/hy9yL2ad/ – GMchris
害怕它不適合我!版本47.0.2526.111(64位)Chrome。 – christopher
對於特定HTML元素.....
$("#elementId").focus(function(){
//fire when element is focused...
});
$("#elementId").blur(function(){
//fire when element is unfocused...
});
對於窗口.....
$(function() {
$(window).focus(function() {
console.log('Focus event');
});
$(window).blur(function() {
console.log('un focus');
});
});
隨着標籤你的意思是一個HTML元素?你在使用組件庫嗎?或者選項卡是指瀏覽器的選項卡? – miso
[有沒有辦法檢測瀏覽器窗口當前是否處於活動狀態?](http://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-ifa-a-瀏覽器窗口不是當前活動的) –
你在嘗試使用哪種瀏覽器? – christopher