001というページを読み込んだらストレージ(cookie)に
name:test-page
value:pageName001
という言う風に、keyとvalueが入るとする
002というページを読み込んだら
name:test-page
value:pageName002
がストレージへ保存される
■やりたいこと
ページを読み込むたびにストレージへ保存されるvalueを
3件分、配列へ格納したい
・イメージ
test-page
┗pageName001
pageName002
pageName003
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
こんな感じですか?
#動作確認はしていません。。。
Javascript
1// cookie書き込み 2var value = [ 'pagename001', 'pagename002' ]; 3document.cookie = 'name=test-page'; 4document.cookie = 'value=' + JSON.stringify(encodeURIComponent(value)); 5 6// cookieからvalueを取得 7var valueString = getCookie('value'); 8value = JSON.parse(valueString); 9 10// valueに「pagename003」を追加してcookie書き込み 11value.push('pagename003'); 12document.cookie = 'value=' + JSON.stringify(encodeURIComponent(value)); 13 14function getCookie(name) { 15 var result = null; 16 var cookieName = name + '='; 17 var allcookies = document.cookie; 18 var position = allcookies.indexOf(cookieName); 19 if (position != -1) { 20 var startIndex = position + cookieName.length; 21 var endIndex = allcookies.indexOf(';', startIndex); 22 if (endIndex == -1) { 23 endIndex = allcookies.length; 24 } 25 result = decodeURIComponent(allcookies.substring(startIndex, endIndex)); 26 } 27 return result; 28}
投稿2015/12/24 13:30
総合スコア736
0
※自己解決ではない
現在: ・test-pageから取得出来るのは一ページずつのみ (pageName001ならvalueはpageName001だけ) ・他のページを読み込むとtest-pageに読み込んだページ名が上書きされる (pageName002へ移動したらvalueのpageName001はpageName002に上書き) やりたい事: ・valueを記憶して配列へ格納させたい
import storage from 'ファイルパス'; // キーの設定 storage: { key: { pageName{ test-page } } } /* Cookieへの書き出し処理 */ var pageName = #タグをとってページ名を取得する処理(#pageName001->pageName001); // デベロッパツールで確認 //storage.setItem(storage.key, pageName); // test-page=pageName001が格納されている //JSON形式に変換 storage.setItem(storage.key.page, JSON.stringify(pageName)); //-- cookie書き込み //-- var value = [ 'pagename001', 'pagename002' ]; //--name=test-page -> test-pageというキーのみ取得する? //--document.cookie = 'name=test-page'; //--valueをJSON.stringifyに変換する処理? //--document.cookie = 'value=' + JSON.stringify(encodeURIComponent(value)); /* cookieからvalueを取得 */ //--var valueString = getCookie('value'); var valueString = JSON.parse(storage.getItem(storage.key.page)); //valueのpageName001を取得 //value = JSON.parse(valueString); //--valueに「pagename003」を追加してcookie書き込み //--↓pageName003を読み込み? //--value.push('pagename003'); //--document.cookie = 'value=' + JSON.stringify(encodeURIComponent(value)); function getCookie(name) { var result = null; var cookieName = name + '='; // cookieの情報すべて取得? var allcookies = document.cookie; var position = allcookies.indexOf(cookieName); if (position != -1) { var startIndex = position + cookieName.length; var endIndex = allcookies.indexOf(';', startIndex); if (endIndex == -1) { endIndex = allcookies.length; } // エンコード処理? result = decodeURIComponent(allcookies.substring(startIndex, endIndex)); } return result; } ```
投稿2015/12/25 03:40
総合スコア115
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/24 13:47
2015/12/25 00:32
2015/12/25 02:08
2015/12/25 02:33
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/25 02:35 編集