2

初めてページを読み込んだときにのみ広告を読み込んだり表示したりするが、ページが更新されるたびに非表示にするdivを作成するにはどうすればよいですか?

Jqueryでdivをロードするコードしかありませんが、ページを更新した後に非表示にする方法がわかりません。

$(document).ready(function() {
  $(".referralProgram").fadeIn("slow");
});
4

4 に答える 4

5

クッキーを使用する:

$(document).ready(function() {
    if (!readCookie("adSeen")) {
        $(".referralProgram").fadeIn("slow");
        createCookie("adSeen", "1", 1000);
    }
});

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    } else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

quirksmode.org のCookie 機能。

編集: Cookieが無効になっている場合にこれに対処する方法について多くの人が議論しているため、サーバーセッションの実装はCookieまたはURLのセッション識別子に依存していることを指摘する必要があります. せいぜい、セッション ID が URL に含まれている限り、同じユーザーの広告が表示されないようにすることしかできません。セッション ID なしでホームページに戻ると、広告が再表示されます。さらに、ユーザーが URL を共有している場合、不注意な実装 (およびいくつかの慎重な実装でさえ) は、他のユーザーに誤検知をもたらす可能性があります。 localStorageすべてではないにしても、ほとんどのブラウザーで Cookie が無効になっていると、ソリューションは機能しません。

于 2013-01-09T21:55:26.607 に答える
1

広告がいつユーザーに表示されたかを追跡する方法が必要になります。広告の作成時に Cookie を設定し、再度表示する前に確認しますか?

于 2013-01-09T21:55:05.293 に答える
0

クライアント側の永続ストレージを使用して、ユーザーが既にこれを見たことがあるというフラグを立てることができます。3 つのオプションがあります。

1) Cookie - 訪問ユーザーのマシンに Cookie を設定します。

2) HTML5 ストレージ - フラグをブラウザー (HTML5 のみ) ストレージに保存できます。

3) サーバー セッション - ミドルウェア (PHP、ASP.NET、Java など) を使用している場合は、セッション変数を介して追跡できます (これは Cookie の抽象化であり、作成した分だけ持続します)。

于 2013-01-09T21:57:54.373 に答える
0

サーバー側の実装がどのようなものかはわかりませんが、Cookie がオフになっていることが心配な場合は、セッション状態を使用してサーバー側でこれを処理できます。

于 2013-01-09T22:00:20.130 に答える