2016-11-24 39 views
0

我試圖在失去焦點時隱藏我的網站。 問題是,當我點擊網站上的iframe時,它失去了焦點。爲了防止出現這種情況,我使用了下面的代碼,它在Chrome甚至Edge中都能很好地工作。爲什麼這不適用於Firefox?jQuery .blur在Firefox中不工作

jQuery(window).focus(function() { 
    jQuery("body").show(); 
}).blur(function() { 
    if(document.activeElement != (document.getElementsByTagName("iframe")[0] || document.getElementsByTagName("embed")[0])) { 
     jQuery("body").hide(); 
    } 
}); 

jQuery的(文件)。就緒並沒有解決我的問題

+1

而不是activeElement你可以嘗試使用.target – Troyer

回答

1

Firefox是有一些麻煩與activeElement,試試下面這段代碼:

jQuery(window).focus(function(e) { 
    jQuery("body").show(); 
}).blur(function(e) { 
    if(e.target != (document.getElementsByTagName("iframe")[0] || document.getElementsByTagName("embed")[0])) { 
     jQuery("body").hide(); 
    } 
}); 

希望現在的工作。 :)

+0

感謝您的答案,但遺憾的是它還沒有工作。我將一個console.log文件放到blur函數中,以查看e.target返回的內容,看起來e.target在blur操作結束後獲取'iframe'參數。 所以,當我點擊進入iframe時,它會記錄'body',我再次點擊並且記錄'iframe'。 – renataedit