0

Javascript を使用して、ある種のインスタント メッセージングを実装しています。メッセージが届いたとき、ユーザーがブラウザ ウィンドウに集中していない場合はサウンドを再生し、それ以外の場合はサウンドを再生したくありません。window.onfocuswindow.onblurについて見てきましたが、これらはイベント リスナーのようです。代わりに、シーケンシャル コードで true または false を返す、より単純なものが必要です。となることによって

if (windowOpen) // user on my window
{
    playSound();
}
// do rest of the messaging

そのような単純な、できれば単一行の手法はありますか?

4

2 に答える 2

3

イベントリスナーに対して何を持っているのか、またはなぜ1行にする必要があるのか​​ わかりません。行数に関係なく、リスナーはまさに必要なもののようです。

var focused = true;

window.onfocus = window.onblur = function(e) {
    focused = (e || event).type === "focus";
}

function yourMessagingFunc() {
    if (focused === false) {
        playSound();
    }
}
于 2013-05-03T14:55:46.010 に答える