您的位置:首页 > Web前端 > JavaScript

用JS实现浏览历史记录功能

2013-03-05 22:50 701 查看
记得以前学JS的时候。那个COOKIE就没有搞清楚。太麻烦了哈。不像PHP一个函数什么都搞定了。他那个COOKIE一多就不得了。那字符串截的头晕。

所以织梦写的这两个函数很重要。他直接简化了JS的COOKIE。让他由复杂变的简单了。这两个函数在AJAX里面的。

//读写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;

   }

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

  }

 }

 return null

}

function SetCookie(c_name,value,expiredays)

{

 var exdate = new Date();

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

 document.cookie = c_name + "=" +escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()); //使设置的有效时间正确。增加toGMTString()

}

把文件引进来后。点击并创建COOKIE

/创建cookie

function getCookies(ids,title){

 var saveid = GetCookie('id');

    var savetitle = GetCookie('products');

 if(saveid != null && savetitle != null)

 {

   var saveids = saveid.split(',');

         var savetitles = savetitle.split(',');

   var hasid = false;

   saveid = '';

         savetitle = '';

   j = 1;

   for(i=saveids.length-1;i>=0;i--)

   {

      if(saveids[i]==ids && hasid) continue;

      else {

       if(saveids[i]==ids && !hasid) hasid = true;

       saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);

                savetitle += (savetitle=='' ? savetitles[i] : ','+savetitles[i]);

       j++;

       if(j==10 && hasid) break;

       if(j==9 && !hasid) break;

      }

   }

     if(hasid) { return false; }

     else saveid += ','+ids;

         savetitle += ','+title;

   SetCookie('id',saveid,1);

         SetCookie('products',savetitle,1);

 }

 else

 {

         SetCookie('id',ids,1);                 //这个是文章ID,好做链接的

        SetCookie('products',title,1);  //这个是文章标题,用来显示的

 }

}

创建好了在内容页读取COOKIE。

<!--输出cookie-->

        <script type="text/javascript">

            var saveid = GetCookie('id');

            var savetitle = GetCookie('products');

         if(saveid != null && savetitle != null)

         {

          var saveids = saveid.split(',');

                var savetitles = savetitle.split(',');

                var hasid = false;

          saveid = '';

                savetitle = '';

     for(i=saveids.length-1;i>=0;i--)

           {

              document.write("<li class=\"listline2 textflow\" onmouseover=\"this.style.backgroundColor='#e4e5ea'\" onmouseout=\"this.style.backgroundColor=''\">" + 

              "<span class=\"adKeyword\">·</span> <a href=\"/plus/view.php?aid="+saveids[i]+"\" title=\""+savetitles[i]+"\">"+savetitles[i]+"</a></li>");

      }

       }

        </script>

最后,清除COOKIE。这个可用AJAX实现。其实用JS也有那种效果的。

//消除cookie,这儿用AJAX更好的

function destroy_cookie(){

    SetCookie('id','',1);

    SetCookie('products','',1);

    document.getElementById('viewHistory').innerHTML="";

    window.alert('你已成功清除浏览历史记录!');

}

ok了。要的时候可以直接调函数。没有函数的可以直接写在需要的地方就好了。其实不难。但是得费点时间搞。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: