【问题标题】:Javascript Count click on link and store it in cookieJavascript 计数点击链接并将其存储在 cookie 中
【发布时间】:2012-05-16 11:32:22
【问题描述】:

我是 javascript 语言的新手,有一个问题:

我有一个脚本,它计算点击链接并在点击 20 次时不显示此链接。

<script type="text/javascript">
    var compteur=0;
    function submitOnce()
    {
    var i,h5s = document.getElementsByTagName('h5'), nbr = h5s.length;

    compteur +=1;
    if (compteur==20){
    for (i=0;i<nbr;i++) {
        document.getElementsByTagName("h5")[i].style.visibility = "hidden";
        document.getElementById("quota").style.display = "block";
    }
    };
    };
 </script>

现在,如果用户导航到网站的其他部分,计数将被重置。所以我想将计数结果存储在cookie中。

我找到了一个脚本,它描述了在 cookie 中存储网站访问次数的过程。

<script language="JavaScript">
  <!--
  function cherchevaleur()
  {
   var valeur = "";
   if(document.cookie)
   {
    valeurdepart = document.cookie.indexOf("=") + 1;
    valeurfin = document.cookie.indexOf(";");
    if(valeurfin == -1) valeurfin = document.cookie.length;
    valeur = document.cookie.substring(valeurdepart,valeurfin);
   }
   return valeur;
  }

  function fixervaleur(indic, valeur, expire)
  {
   var maintenant = new Date();
   var temps = new Date(maintenant.getTime() + expire);
   document.cookie = indic+"="+valeur+"; expires="+temps.toGMTString()+";";
  }

  function compteur()
  {
   var tpsexpire = 1000*60*60*24*1;
   var nombre = cherchevaleur();
   var compte = 0;
   if(nombre != "") compte = parseInt(nombre);
   if(document.cookie)
   {
    compte = compte + 1;
    fixervaleur("compte",compte,tpsexpire);
   }
   else
   {
    compte = 1;
    fixervaleur("compte",compte,tpsexpire);
   }
  alert("C'est votre " + compte + "ème visite sur cette page!");
  }
  //-->
 </script>

但我不明白如何插入我的计数脚本。有没有人可以帮助我理解?

谢谢

【问题讨论】:

    标签: javascript cookies hyperlink counter


    【解决方案1】:

    您可以使用 JavaScript 的这些 SetcookiesGetcookies 函数来读取和写入 cookie 中的值...

    function setCookie(c_name, value, exdays) {
                var exdate = new Date();
                exdate.setDate(exdate.getDate() + exdays);
                var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
                document.cookie = c_name + "=" + c_value + "; path=/";
            }
            function getCookie(c_name) {
                var i, x, y, ARRcookies = document.cookie.split(";");
                for (i = 0; i < ARRcookies.length; i++) {
                    x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
                    y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
                    x = x.replace(/^\s+|\s+$/g, "");
                    if (x == c_name) {
                        return unescape(y);
                    }
                }
            }
    

    【讨论】:

    • 这个快速的答案非常感谢!看起来更难......你能提供更多信息吗?我真的是新手。
    猜你喜欢
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多