0

私の要件は、サイトにアクセスしてから15分後です。ユーザーは、登録ページに移動します。そして、そのページを再度開いた後でもページを追跡する必要があります。ユーザーは登録ページに移動します。

要件としてはクッキーで可能だと思いますが、サイトにアクセスした時間を数える必要があります。サイト訪問の分が15jsに達すると、関数が起動し、そこでCookieを設定してリダイレクトできます。

誰かがjsによるサイト訪問分を追跡するのを手伝ってくれませんか?

4

1 に答える 1

1

エポックには同意しますが、次を使用して実行できlocalStorageます。

(function (timer)
{
    var now = new Date();
    var redirect = function()
    {
        location.href = 'register url';
    }
    if (!localStorage.getItem('registrationMinutes'))
    {
        localStorage.setItem('registrationMinutes',(+now)+60000*15);//time +15 minutes
    }
    if (localStorage.registrationMinutes <= +now)
    {//on page load, check if 15 mins are up
        return redirect();
    }
    timer = setTimeout(redirect,localStorage.registrationMinutes - now);//call function when time is up
})();

この小さな機能をすべてのページに含めるだけです。のような Cookie を設定し、クライアントが既に登録されている場合はタイムアウトを設定したくuserIsRegisteredない場合がありますこのコードがクライアントに送信されることを知っておいてください。クライアントは、Cookie や JS などを自由に無効にすることができます...そして、古い IE ブラウザーではサポートされていない
と思います (驚くべきことです!)は少し多いので、簡単なコピー&ペースト スニペットを次に示します。localStorage

(function (url,now,timer)
{
    var redirect = function()
    {
        location.href = url;
    }
    if (!localStorage.getItem('registrationMinutes'))
    {
        localStorage.setItem('registrationMinutes',(+now)+60000*15);//time +15 minutes
    }
    if (localStorage.registrationMinutes <= +now)
    {//on page load, check if 15 mins are up
        return redirect();
    }
    timer = setTimeout(redirect,localStorage.registrationMinutes - now);//call function when time is up
})('redirectUrl',new Date());

'redirectUrl'文字列を URL に置き換えるだけで、問題なく動作するはずです。変数名を変更する必要もありません。変数はすべてこの無名関数のスコープに含まれているため、親スコープで宣言された変数と競合することはありません。

于 2012-09-14T07:25:49.897 に答える