3

ユーザーが特定のサイトから来た場合にのみ、jQueryを使用してサイトにCookieを設定しようとしています。この場合、例としてCookieを作成するために取得する必要のあるサイトとして、-http://referrersite.com-を使用します。Cookieの値は変数に保存されており、これまでのすべてが正常に機能しています。

ユーザーが参照先サイトから来たかどうか、Cookieがすでに存在するかどうか、Cookieが存在せず、ユーザーが参照先サイトから来ていないかどうかを確認する条件付きステートメントがあります。ユーザーが参照先のサイトから来た場合、Cookieが作成され、変数に保存されます。Cookieがすでに存在する場合は、変数に保存されます。Cookieが存在せず、ユーザーが参照先のサイトから来ていない場合は、変数に静的な文字列を割り当てています。これが問題の原因です。

変数が参照されていないサイトからアラートを受け取り、既存のCookieがない場合、静的な文字列ではなく、[オブジェクトオブジェクト]を返します。

私が使用しているコードは以下のとおりです。

$(document).ready(function() {

    var referrer = document.referrer;

    if(referrer == "http://referrersite.com") {

        $.cookie("code","123456", { expires: 90, path: '/' });
        cookieContainer = $.cookie("code");
        alert(cookieContainer);

    } else if($.cookie("code")) {

        cookieContainer = $.cookie("code");
        alert(cookieContainer);

    } else if($.cookie("code") == null && referrer != "http://referrersite.com") {

        cookieContainer = "67890";
        alert(cookieContainer);

    }

});

結論として、私の目標は、ユーザーが参照先のサイトから来たのではなく、存在しない場合cookieContainerに文字列を設定することです。何らかの理由で、代わりにオブジェクトが含まれています。"67890"$.cookie("code")

コードが機能するように見えるので、足りないものがあれば教えてください。

ありがとう!

4

1 に答える 1

0

[Object Object]つまり、Cookie 内のデータは文字列ではなく、厳密にはそうではありません。Cookie 内のデータは、JSON 文字列/オブジェクトのデータに似ている可能性があります。そして、それを警告するには、画面に印刷するか、長期的には何をしようとしても、オブジェクトをループしてすべてを印刷する必要があります..または、どのプロパティがわかっている場合具体的には、具体的に呼び出す必要があります。

例えば:

if(cookieContainer.property_name_whatever)
{
    alert(cookieContainer.property_name_whatever);
}

個々のプロパティを見つけるには、javascript を使用する最も簡単な方法は、Firefox を使用し、Firebug http://getfirebug.com/alert(cookieContainer)をインストールし、コードにdoの代わりにインストールすることだと思いますconsole.log(cookieContainer)。firebug でコンソールを有効にすると、オブジェクト全体が読み取られ、プロパティ => 値ごとにデータが表示されます。

探している Cookie ではないものが存在する理由は、そのサイトのユーザーが別のサイトまたは検索エンジンから来た可能性が高いためです。ページへの URL ランディングを使用document.referrerする場合、内部もリファラーとして扱われる可能性が高く、最終的にはブラウザー自体に依存しますが、すべての主要なブラウザーがそれをサポートしているため、さまざまな程度ですべて異なる方法で扱います。私は自分で頻繁に使用しないため、その特定のオブジェクトを完全に理解していると主張するつもりはありません。しかし、W3を引用するには

定義と使用法

referrer プロパティは、現在のドキュメントを読み込んだドキュメントの URL を返します。

言及されている URL は、ページ上のリンクを介してページ間を行き来している同じサイトのあなたでさえある可能性があります (それがリロード/リフレッシュに当てはまるかどうかはわかりませんが、私は推測できます)

于 2012-09-28T16:26:56.667 に答える