js读写cookie实现一个底部广告浮层效果的两种方法

 更新时间:2013年12月29日 17:01:59   作者:  
使用js实现一个页面浮层效果,用js读写cookie来实现用户关闭广告的显示状态,下面有个不错的示例,感兴趣的朋友可以参考下
下面一个案例使用js实现一个页面浮层效果,并且通过两种方法使用js读写cookie来实现用户关闭广告的显示状态;

读者可以将下面代码复制到一个html文件试试效果;html的pre标签未两种js实现的方式
复制代码 代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>
<meta content="杨凯" name="description"/>
<meta name="author" content="http://blog.csdn.net/tianyazaiheruan"/>
<meta name="copyright" content="杨凯版权所有"/>
<title>IT_Blog_杨凯</title>
</head>
<body>
<div>
本文作者:IT_Blog_杨凯
转载请指明出处:<a href=”http://blog.csdn.net/yangkai_hudong”>http://blog.csdn.net/yangkai_hudong</a>
</div>
<br>
<div>
<pre>
1.第一种:使用jQuery的cookie库
例子就是现在正在使用的js,相关代码如下:
$(document).ready(function () {
var adCookie=$.cookie("docCookie");
//如果本地没有cookie,将词条cookie写入本地
if(adCookie!="adDocCookie"){
$("#wapDocCookie").show();
}
//如果本地存在词条cookie,不显示浮层
if(adCookie=="adDocCookie"){
$("#wapDocCookie").hide();
}
//关闭广告,隐藏浮层
$("#closeAd").click(function(){
$("#wapDocCookie").hide();
$.cookie("docCookie","adDocCookie",{expires:60});
});

});
//jQuery cookie library
jQuery.cookie = function(name, value, options) {
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else { // only name given, get cookie
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
};
2.第二种:自己写一个js操作cookie的实例
相关js如下:
$(document).ready(function() {

function writeCookie(name,value)
{
var exp = new Date();
exp.setTime(exp.getTime() + 7*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//读取cookies
function readCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)){
return unescape(arr[2]);
}else {
return null;
}
}
var adCookie = readCookie("adCookie");

if(adCookie!="adDocCookie"){
$("#wapDocCookie").show();
}
//如果本地存在词条cookie,不显示浮层
if(adCookie=="adDocCookie"){
$("#wapDocCookie").hide();
}

//关闭广告,隐藏浮层
$("#closeAd").click(function(){
$("#wapDocCookie").hide();
});
});
</pre>
</div>
<!--广告样式 -->
<style type="text/css">
body {TEXT-ALIGN: center;}
#wapDocCookie{background-color:rgba(0,0,0,0.7);background:#4b4b4b\9;width:100%;text-align:center;position:fixed;padding:10px 0 5px 0;bottom:0;left:0;}
#bkguancha{background:url(http://static.hudong.com/35/86/26100000006141138683868789461.png) no-repeat;background-size:280px;background:url(http://static.hudong.com/50/69/26100000006141138683695381873.png) no-repeat 0 -36px\9;height:46px;width:290px;display:inline-block;overflow:hidden;line-height:99em;}
#closeAd{background:url(http://static.hudong.com/54/88/26100000006141138683883031718.png) no-repeat ;background-size:12px;background:url(http://static.hudong.com/50/69/26100000006141138683695381873.png) no-repeat -278px 0\9;height:12px;width:12px;display:block;position:absolute;top:5px;right:10px;}
<!--广告js -->
</style>
<script type="text/javascript" src="http://www.huimg.cn/lib/jquery-1.3.2.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var adCookie=$.cookie("docCookie");
//如果本地没有cookie,将词条cookie写入本地
if(adCookie!="adDocCookie"){
$("#wapDocCookie").show();
}
//如果本地存在词条cookie,不显示浮层
if(adCookie=="adDocCookie"){
$("#wapDocCookie").hide();
}
//关闭广告,隐藏浮层
$("#closeAd").click(function(){
$("#wapDocCookie").hide();
$.cookie("docCookie","adDocCookie",{expires:60});
});

});
//jQuery cookie library
jQuery.cookie = function(name, value, options) {
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else { // only name given, get cookie
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
};
</script>

<div id="wapDocCookie" style="display: none;">
<a id="bkguancha" href="http://www.baike.com/api.php?m=guancha&a=download" onclick="StatVirtualTraffic(document.referrer,window.location,'stat_hdstat_onclick_survey_wap_doc_foot_download')">点击下载</a>
<a title="关闭" id="closeAd" href="javascript:void(0)"> </a>
</div>
</body>
</html>

相关文章

  • javascript实现拖动元素交换位置

    javascript实现拖动元素交换位置

    这篇文章主要介绍了javascript实现拖动元素交换位置的方法,类似拼图游戏拖拽卡片效果,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • 在Postman的脚本中如何使用pm对象获取接口的请求参数

    在Postman的脚本中如何使用pm对象获取接口的请求参数

    这篇文章主要介绍了在Postman的脚本中如何使用pm对象获取接口的请求参数,本文通过实例代码图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • js正则表达式的使用详解

    js正则表达式的使用详解

    本篇文章是对js中正则表达式的使用进行了详细的分析介绍,需要的朋友可以参考下
    2013-07-07
  • JS动态计算移动端rem的解决方案

    JS动态计算移动端rem的解决方案

    移动设备分辨率五花八门虽然我们可以通过CSS3的media query来实现适配,但是这种做法并不能适配所有设备,这篇文章主要介绍了js动态计算移动端rem的解决方案,非常不错,感兴趣的朋友一起看看吧
    2016-10-10
  • 微信小程序学习总结(五)常见问题实例小结

    微信小程序学习总结(五)常见问题实例小结

    这篇文章主要介绍了微信小程序常见问题,结合实例形式总结分析了微信小程序常见错误、数据缓存、界面交换等相关操作技巧,需要的朋友可以参考下
    2020-06-06
  • eclipse如何忽略js文件报错(附图)

    eclipse如何忽略js文件报错(附图)

    eclipse中js文件报错的情况,或许大家早已习以为常了,那么有什么好的方法可以将其忽略掉呢?如果你也在寻找此问题,那么本文或许可以帮助到你
    2013-10-10
  • 微信js-sdk地理位置接口用法示例

    微信js-sdk地理位置接口用法示例

    这篇文章主要介绍了微信js-sdk地理位置接口用法,结合实例形式分析了js-sdk地理位置接口的定义与简单使用方法,需要的朋友可以参考下
    2016-10-10
  • 浅谈js原生拖放

    浅谈js原生拖放

    下面小编就为大家带来一篇浅谈js原生拖放。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JS中数学计算精度问题的解决方案

    JS中数学计算精度问题的解决方案

    这篇文章主要给大家介绍了JS中数学计算精度问题的解决方案,文中通过代码示例和图文结合给大家讲解非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-12-12
  • 浅析js封装和作用域

    浅析js封装和作用域

    在编写web软件时,遇到一些可以共用js的情况,于是就想着如何封装js代码。基本需求很简单,其实就是根据不同的情况封装js代码
    2013-07-07

最新评论