2017-12-04 12 views
-1

私はこのようなコードを持っています。私はそのポップアップを1日に1回だけ表示したい。私はどこかのページでクリックしたときにjavascriptを使用してポップアップを表示する方法1回のみ

<script type="text/javascript"> 
    var popup = function() { 
     window.open ("http://example.com", "Window","status=1,toolbar=1"); 
    } 
</script> 
<body onclick="popup()"> </body> 

そのコードは、ポップアップを開きますが、それは常に私がクリックし、ウィンドウのたびにポップアップ表示されますので、私はそれだけで1日に1時間を示すポップアップ表示したいです。

答えて

0

あなたは(時間/分/秒/ミリ秒をはがした後)localstoragelast-shownタイムスタンプを保存して、現在のタイムスタンプと同じように比較する必要が

デモローカルでのみをご確認ください。 )

<script type="text/javascript"> 
 
    var popup = function() { 
 
    var lastShownTs = +localStorage.getItem("lastShown"); 
 
    var currentDate = new Date(); 
 
    currentDate.setHours(0, 0, 0, 0); 
 
    var lastShown = null; 
 
    if (!isNaN(lastShownTs)) { 
 
     lastShown = new Date(lastShownTs); 
 
     lastShown.setHours(0, 0, 0, 0); 
 
    } 
 
    if (lastShown == null || lastShown.getTime() != currentDate.getTime()) { 
 
     window.open("http://example.com", "Window", "status=1,toolbar=1"); 
 
     localStorage.setItem("lastShown", currentDate.getTime()); 
 
    } 
 
    } 
 
</script> 
 

 
<body onclick="popup()"> </body>

+0

'currentDate.setHours(0、0、0、0)の何平均;'と '持続hown.setHours(0、0、0、0); '試しエディタw3Schoolから実行しようとしています。そのため、土曜日の午後4時にポップアップが表示され、次のポップアップが日曜日の午後24時に再び表示されますか? –

+0

はい、日付部分だけが互いに比較され、残りのタイムスタンプは考慮されないことを保証することになっています。 – gurvinder372

+0

uコードありがとう。私はキャッシュを取得する必要があります。訪問者は最初にエラーページを取得しません。 –

0

ポップアップが最後に表示された時刻を保存するために、localStorageまたはcookieを使用できます。現在時刻と前回の時刻の差が24時間を超える場合は、ポップアップを表示します。

0

ブラウザのLocalStorageを使用して、どのユーザーがポップアップを表示し、1日に1回多く表示しないようにする必要があります。あなたはその変数がすでにのlocalStorageに存在するかどうかをチェックする機能を呼び出すことができますこれにより

localStorage.setItem('PopupName', 'true') 
localStorage.getItem('PopupName') // that return true 

を、それが存在しない場合は、ポップアップを示してコードを実行し、変数を設定します。

あなたは使用することができますこの例のようにLocalStorageにあります。

関連する問題