2016-11-24 25 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の(ドキュメント).readyが

+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

をお試しください。お返事ありがとうございますが、残念ながらまだ動作していません。私は、e.targetが返すものを見るためにconsole.logをblur関数に入れました。そして、blurアクションが終了した後、e.targetが 'iframe'パラメータを取得するように見えます。 iframeをクリックすると、 'body'がログに記録されますが、もう一度クリックすると 'iframe'が記録されます。 – renataedit

関連する問題