兩種方法使用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>
相關文章
- html兩種方法來實現tab切換效果HTML
- 底部導航欄懸浮效果
- 使用Three.js實現神奇的3D文字懸浮效果JS3D
- 使用JS實現一個簡單的選項卡效果JS
- JS讀取本地TXT文字的兩種方法JS
- [ Shell ] 兩個 case 實現 GetOptions 效果
- ts - 兩種方法實現忽略大小寫的字串排序字串排序
- android Material Design 學習之十:底部Tab的兩種實現AndroidMaterial Design
- Cookie 詳解以及實現一個 cookie 操作庫Cookie
- js 深拷貝兩種方法JS
- 兩種方法使vue實現jQuery呼叫VuejQuery
- 滑鼠懸浮div實現旋轉效果
- 懸浮窗的一種實現 | Android懸浮窗Window應用Android
- js實現打字效果JS
- 請列舉幾種可以清除浮動的方法(至少兩種)
- 利用訊號量semaphore實現兩個程式讀寫同步 Linux CLinux
- 實現報表滾動到底部翻頁效果
- vue2.0實現底部導航切換效果Vue
- CSS實現兩個球相交的粘粘效果CSS
- 實現一個煙花效果
- 【Cesium】新增廣告牌實體實現地點標記效果
- Golang兩種方法實現MD5加密Golang加密
- 原生JS去重(一)--兩種方法去掉重複字元JS字元
- 滑鼠懸浮圖片實現翻轉效果
- 滑鼠懸浮圖片實現縮放效果
- 滑鼠懸浮實現環形旋轉效果
- 手寫一個HTTP框架:兩個類實現基本的IoC功能HTTP框架
- 使用Java實現一個JS指令碼引擎JavaJS指令碼
- 微信小程式之animation底部彈窗動畫(兩種方法)微信小程式動畫
- 用CSS畫出一個任意角度的扇形,可以寫多種實現的方法CSS
- JAVA 兩個類同時實現同一個介面的方法Java
- 利用HTML5,無JS實現各種互動效果HTMLJS
- 使用vue實現行列轉換的一種方法。Vue
- 滑鼠懸浮連結底部出現橫線
- 精讀《用160行js程式碼實現一個React》JSReact
- RabbitMQ實現延時訊息的兩種方法MQ
- Cookie出現兩個同名Key的問題Cookie
- HTML+CSS底部footer兩種固定方式HTMLCSS
- 利用css變數實現按鈕懸浮效果CSS變數