ホームページ > ウェブフロントエンド > jsチュートリアル > js を使用して cookies_javascript スキルで閲覧履歴を保存する方法

js を使用して cookies_javascript スキルで閲覧履歴を保存する方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-05-16 15:23:33
オリジナル
1202 人が閲覧しました

この記事の例では、js で Cookie を操作して閲覧記録を保存する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

注: 最近、ユーザーが閲覧した商品ページを記録する機能を作りました。私のアイデアは、顧客が商品ページに入るたびに、JS を呼び出して、商品情報を JSON 形式で Cookie に保存するというものです。

閲覧履歴の表示は Cookie から読み取られ、json に解析されて html 要素が生成されます。ユーザーは同時に複数のページを開く可能性があるため、これらのページには閲覧記録が含まれる場合があり、閲覧記録を表示するために 1 秒ごとに更新されます。

2 つの js ファイル、history.js、主要なチャット記録の保存と読み取りコードが使用されます。 json.js、jsonを処理します。

history.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

var addHistory=function(num,id){

  stringCookie=getCookie('history');

  var stringHistory=""!=stringCookie?stringCookie:"{history:[]}";

  var json=new JSON(stringHistory);

  var e="{num:"+num+",id:"+id+"}";

  json['history'].push(e);//添加一个新的记录

  setCookie('history',json.toString(),30);

}

//显示历史记录

var DisplayHistory=function(){

  var p_ele=document.getElementById('history');

   while (p_ele.firstChild) {

   p_ele.removeChild(p_ele.firstChild);

   }

  var historyJSON=getCookie('history');

  var json=new JSON(historyJSON);

  var displayNum=6;

  for(i=json['history'].length-1;i>0;i--){

    addLi(json['history'][i]['num'],json['history'][i]['id'],"history");

    displayNum--;

    if(displayNum==0){break;}

  }

}

//添加一个li元素

var addLi=function(num,id,pid){

  var a=document.createElement('a');

  var href='product.action?pid='+id;

  a.setAttribute('href',href);

  var t=document.createTextNode(num);

  a.appendChild(t);

  var li=document.createElement('li');

  li.appendChild(a);

  document.getElementById(pid).appendChild(li);

}

//添加cookie

var setCookie=function(c_name,value,expiredays)

{

  var exdate=new Date()

  exdate.setDate(exdate.getDate()+expiredays)

  cookieVal=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());

//  alert(cookieVal);

  document.cookie=cookieVal;

}

//获取cookie

function getCookie(c_name)

{

  if (document.cookie.length>0)

   {

   c_start=document.cookie.indexOf(c_name + "=")

   if (c_start!=-1)

    {

    c_start=c_start + c_name.length+1

    c_end=document.cookie.indexOf(";",c_start)

    if (c_end==-1) c_end=document.cookie.length

//    document.write(document.cookie.substring(c_start,c_end)+"<br>");

    return unescape(document.cookie.substring(c_start,c_end))

    }

   }

  return ""

}

ログイン後にコピー

json.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

var JSON = function(sJSON){

  this.objType = (typeof sJSON);

  this.self = [];

  (function(s,o){for(var i in o){o.hasOwnProperty(i)&&(s[i]=o[i],s.self[i]=o[i])};})(this,(this.objType=='string')&#63;eval('0,'+sJSON):sJSON);

}

JSON.prototype = {

  toString:function(){

    return this.getString();

  },

  valueOf:function(){

    return this.getString();

  },

  getString:function(){

    var sA = [];

    (function(o){

      var oo = null;

      sA.push('{');

      for(var i in o){

        if(o.hasOwnProperty(i) && i!='prototype'){

          oo = o[i];

          if(oo instanceof Array){

            sA.push(i+':[');

            for(var b in oo){

              if(oo.hasOwnProperty(b) && b!='prototype'){

                sA.push(oo[b]+',');

                if(typeof oo[b]=='object') arguments.callee(oo[b]);

              }

            }

            sA.push('],');

            continue;

          }else{

            sA.push(i+':'+oo+',');

          }

          if(typeof oo=='object') arguments.callee(oo);

        }

      }

      sA.push('},');

    })(this.self);

    return sA.slice(0).join('').replace(/

objectobject

,/ig,'').replace(/,\}/g,'}').replace(/,\]/g,']').slice(0,-1);

  },

  push:function(sName,sValue){

    this.self[sName] = sValue;

    this[sName] = sValue;

  }

}

ログイン後にコピー

この記事が JavaScript プログラミングのすべての人に役立つことを願っています。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
ノード Js + JS 入力 = document.getElementById
から 1970-01-01 08:00:00
0
0
0
js addClassが機能しない
から 1970-01-01 08:00:00
0
0
0
javascript - jsコードをPythonに変換
から 1970-01-01 08:00:00
0
0
0
jsファイルのコードが見つかりません
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート