他の人がウィンドウを見ているときに、あるコンピュータから別のコンピュータに通信するアプリケーションを作成しています。たとえば、Facebookのチャットで誰かとチャットし、他の人がタブやalt +タブなどを変更したとします。相手が知っていると思います(詳細はなく、facebookウィンドウがうまくいきませんでした)。onblurとonfocusイベントでiframeを使用する
/**
* Functions which keeps track of whether the page is the active tab
* this reports back to the host
*/
window.onblur=function(){
if(conn!=null) {
conn.send(JSON.stringify({'type':'upd','ele':'vis','status':0}));
}
make_noise('0000');
};
window.onfocus=function(){ // when you focus the window
if(conn != null) {
conn.send(JSON.stringify({'type':'upd','ele':'vis','status':1}));
}
stop_noise('0000');
};
このすべての作品、問題なし:
これは、最終的には、簡単でした。
しかし、私もページにiframeがあります。ユーザーがiframe内にある場合には、その後のonblurイベントがトリガされ、ユーザのaltは+タブ付きのように見える、など
別のタブに行ってきました私は解決するために、これを試してみました:
window.onblur=function(){ // when you leave the window
if(conn != null && (document.activeElement != document.getElementById("content_frame"))) {
conn.send(JSON.stringify({'type':'upd','ele':'vis','status':0}));
}
}
make_noise('0000');
};
しかし、iframeのためウィンドウが現在アクティブかどうかにかかわらず、activeElementのままです。これにより、偽陽性が発生します。
誰もがこのことを考える方法はありますか? $(「IFRAME」)(「:フォーカス」)である。
本当にありがとうございました... IFRAMEの焦点をテストする方法として提案されたが、それはactiveElementのようにちょうど同じ働きましたが、 アレックス
親とIFrameの両方が同じ起源ですか? – 11thdimension
原産地はどういう意味ですか? :) –
このhttps://en.wikipedia.org/wiki/Same-origin_policyを見ると、一般的には同じドメイン 'protocol:// domain:port'を意味します。 – 11thdimension