2009-08-14 16 views
2

誰でも知っているJavaScriptを使用してクッキーにオブジェクトを割り当てることは可能ですか?はいの場合、どうすればいいですか?またjavascriptでクッキーにオブジェクトを割り当てることはできますか?

+2

最初の質問を編集する必要があります。開始する代わりにhttp://stackoverflow.com/questions/1275888/any-way-that-i-can-assign-window-openurl-into-cookies-array-in-javascript新しいもの。 – zombat

答えて

6

オブジェクトを標準的な文字列表現にシリアル化し、それを文字列表現からオブジェクト形式に逆シリアル化することができれば、それをクッキーに入れることができます。

earlier questionから、window.open()の結果をクッキーに保存することに関して、これはあなたが望む答えではありません。

+0

私はJavaScriptとのセッションにそれを保存すれば動作しますか? –

+0

JavaScriptのSession変数に保存することはできません。 – rahul

+1

@Jin:後でデシリアライズできる標準的な文字列表現にブラウザウィンドウをシリアル化することはできません。そのため、クッキーにもセッションにも格納できず、格納するためのサーバーサイドコードにも渡すことはできません、等 –

-2

私は4キロバイトはあなたが何らかの形で文字列にあなたのオブジェクトをシリアル化する必要があるので、

+2

これは本当に質問に答えるものではなく、クッキーの想定機能についてのみ説明しています... – newfurniturey

0

クッキーは文字列値のみを保存するクッキーに許されていると思います。そして、あなたがクッキーからそれを読むとき、それを逆直列化する。しかし、これはあなたのオブジェクトが単純なデータ(文字列、数値、配列)を持っている場合にのみ機能し、関数ではうまく動作しません。なぜあなたはそれをやりたいのか分かりません。

1

オブジェクトをシリアル化してテキストとして書き出す必要があります。私はそれがうまくサポートされているので、JSONの使用を検討します。

良いパーサーhereがあります。 JSON.stringify()メソッドを呼び出すだけで済みます。あなたが必要な場合ので、あなたは

window.document.cookie 

に正しい形式で文字列を追加する必要がJavaScriptでクッキーを書き込むには、文字列は、

'name=cookiename; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/' 
0

クッキーは、テキストのみを保持するように設計され、次の形式にする必要がありますオブジェクトをシンプルな文字列にシリアライズして、これを機能させます。

ほとんどのブラウザでは、Cookieは+4096バイトに制限されているため、多くの情報を保存することはできません。

2

これはJSONにあなたのオブジェクトをシリアル化し、それを行うための一つの方法、

  1. です。
  2. Base64をBase64でエンコードします。
  3. Cookie値としてBase64でエンコードされた文字列を使用します。

クッキーを読み取る際には、手順を逆にしてください。

Base64文字セットを引用符で囲む必要があるため、バージョン1のCookieを使用する必要があります。古いNetscapeスタイルのCookieを使用する場合は、URLセーフBase64エンコーダーを使用する必要があります。

もちろん、これは小さなオブジェクトにのみ適しています。

関連する問題