角度 发表于 2009-6-2 16:56:20

如何用COOKIES控制 广告只显示一次 包括弹窗等任何广告

首先,要把以下代码存为cookies.js 在htm页中调用!

此为JS代码A:

function setCookie(name,value,days){
      var exp=new Date();
      exp.setTime(exp.getTime() + days*24*60*60*1000);
      var arr=document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
      document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
}
function getCookie(name){
      var arr=document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
      if(arr!=null){
                return unescape(arr);
                return null;
      }
}
function delCookie(name){
      var exp=new Date();
      exp.setTime(exp.getTime()-1);
      var cval=getCookie(name);
      if(cval!=null){
                document.cookie=name+"="+cval+";expires="+exp.toGMTString();
      }
}
以上代码就是读写cookies的函数,这个你不需要看懂,只要知道怎么用就行了


MJJ们再看如下JS代码,把这个代码存为pacth.js 在同一个网页内调用,注意先调用JS代码A,再调用JS代码B
<script src="cookies.js"></script><script src="patch.js"></script>
注意路径问题,这个就不多说了

此为JS代码B

function out(){
      if(getCookie("out")!="yes"){
                setCookie("out","yes",1);document.write('此处放置你的js代码-标注1');
      }
}
out();
此上代码,是调用cookies中的函数,来判断名为out的cookies是否已经存在,如果不存在,则,设置此cookies为YES
然后再运行你的JS代码

至此,如果你再刷新页面的话,次名为OUT的COOKIES已经存在了,就不会再运行标注1的代码了

补充:

如果我要设置一个弹窗,还有多个需要设置时间的代码怎么办?
那就把function out() 这个out函数重新命名,就又可以多设置一个可控制时间的函数了

举个例子
function out1(){
      if(getCookie("out1")!="yes"){
                setCookie("out1","yes",1);document.write('此处放置你的js代码1-标注1');
      }
}
out1();



function out2(){
      if(getCookie("out2")!="yes"){
                setCookie("out2","yes",1);document.write('此处放置你的js代码2-标注1');
      }
}[
out2();
依次类推

Morrison 发表于 2009-6-2 19:11:34

收藏了 挺实用的代码 呵呵

ustbhong 发表于 2009-6-3 08:14:26

不错的,谢谢,收藏!!!!!!

nobaldream 发表于 2009-10-26 17:55:39

强大,顶起
页: [1]
查看完整版本: 如何用COOKIES控制 广告只显示一次 包括弹窗等任何广告