2017-10-16 5 views
0

この機能は、ブラウザタブ/ウィンドウがアクティブなときに一度だけ実行するにはどうすればよいですか?ウィンドウがアクティブなときにスクリプトを実行

$(function(){ 

noty({text:'Here is my text',type:'error'}); 

return false; 
}); 

は、私が使用している場合:

$(window).one('focus', function(){ 

機能はしかし、私はタブを離れ、再び戻ってきた場合にのみ実行されます。

アイデア?

多くのお礼ありがとうございます

+0

多分、それは私が必要なもの、https://stackoverflow.com/questions/1760250/how-to-tell-if-browser-tab-is-active – Sergey

答えて

0

「アクティブです」とはどういう意味ですか?

ロード後にこの関数を1回だけ呼び出す必要がある場合は、loadイベントまたはreadyとjqueryを使用できます。

タブがアクティブなたびに、ユーザーがタブにいるときにマウスで文書をフォーカスする場合は、focusイベントを使用できます。

let activated = false; 
window.addEventListener('focus', function() { 
    if(!activated) { 
     console.log('test'); 
     activated = true; 
    } 
}) 
+0

shepluこんにちは役立つことは、機能を示すことですウィンドウがアクティブな場合新しいウィンドウ/タブを開くと、そのタブに移動するまで機能は表示されません。 – Playinteractive

+0

okだから、ユーザーがあなたのページに来たときに一度だけ機能を起動する必要があります。それでは、フォーカスを使用して、あなたのウェブサイトに初めて使用するかどうかを確認する場合は、 – sheplu

+0

私はシェップルして、ウィンドウをリフレッシュしても機能しません!それは '負荷'と 'フォーカス'で可能な仕事ですか? – Playinteractive

0

ロードイベントを使用すると、ページがロードされたときに発生します。

$(document).ready(() => { 
    $(window).on('load',() => { 
    noty({ text: 'Here is my text', type: 'error' }); 
    }); 
}); 
+0

こんにちはkemotoe、新しいウィンドウ/タブを開くと、タブがアクティブかどうかにかかわらず、関数が実行されます...タブがアクティブな場合にのみ実行されます。 – Playinteractive

関連する問題