页面只能打开一次Cooike如何实现


Posted in Javascript onDecember 04, 2012

最近在做webIM,嵌入到OA系统,由于WEBIM处在独立页面,所以如果多次点击就会出现多个页面,这样在IE6下,服务器推送会认不到页面.所以有了下面的代码:

<script language="javascript" type="text/javascript"> 
window.onload = function () { 
if (GetCookie("IsOpen") == "") { 
SetCookie("IsOpen", "1"); 
StartService(); 
} else { 
window.onunload = null; 
window.opener = null; 
window.open("", "_self"); 
window.close(); 
} 
} window.onunload = function () { 
if (GetCookie("IsOpen") != "") 
DeleteCookie("IsOpen"); 
} 
function GetCookieVal(offset) { 
/// <summary> 
/// //取得项名称为offset的cookie值 
/// </summary> 
/// <param name="name">Cookie名称</param> 
var endstr = document.cookie.indexOf(";", offset); 
if (endstr == -1) 
endstr = document.cookie.length; 
return unescape(document.cookie.substring(offset, endstr)); 
} 
function GetCookie(name) { 
/// <summary> 
/// 根据名称获得Cookie值 
/// </summary> 
/// <param name="name">Cookie名称</param> 
var arg = name + "="; 
var alen = arg.length; 
var clen = document.cookie.length; 
var i = 0; 
while (i < clen) { 
var j = i + alen; 
if (document.cookie.substring(i, j) == arg) 
return GetCookieVal(j); 
i = document.cookie.indexOf(" ", i) + 1; 
if (i == 0) break; 
} 
return ""; 
} 
function SetCookie(name, value) { 
/// <summary> 
/// 设置Cookie 
/// </summary> 
/// <param name="name">Cookie名称</param> 
/// <param name="value">Cookie值</param> 
var argc = SetCookie.arguments.length; 
var argv = SetCookie.arguments; 
var path = (argc > 3) ? argv[3] : null; 
var domain = (argc > 4) ? argv[4] : null; 
var secure = (argc > 5) ? argv[5] : false; 
document.cookie = name + "=" + value + 
((path == null) ? "" : ("; path=" + path)) + 
((domain == null) ? "" : ("; domain=" + domain)) + 
((secure == true) ? "; secure" : ""); 
} 
function DeleteCookie(name) { 
/// <summary> 
/// 删除Cookie 
/// </summary> 
/// <param name="name">Cookie名称</param> 
var exp = new Date(); 
exp.setTime(exp.getTime() - 1); 
var cval = GetCookie(name); 
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); 
} 
</script>

把上面的代码,放到head下面就可以了.呵呵够简单了吧?当然上面的代码主要解决的是用超链接打开的页面,如果是window.open打开的页面呢,那就更简单了,代码如下:
var win = null;//定义一个变量去判断就可以了 
if (win == null) 
{ 
win=window.open("Main.aspx", '', strfeatures); 
}

Javascript 相关文章推荐
参考:关于Javascript中实现暂停的几篇文章
Mar 04 Javascript
Javascript实现视频轮播在pc端与移动端均可
Sep 29 Javascript
javascript匿名函数实例分析
Nov 18 Javascript
JavaScript设计模式之建造者模式介绍
Dec 28 Javascript
javascript运动详解
Jul 06 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
Dec 18 Javascript
Jquery中巧用Ajax的beforeSend方法
Jan 20 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 Javascript
AngularJS表单详解及示例代码
Aug 17 Javascript
vuejs父子组件之间数据交互详解
Aug 09 Javascript
npm配置国内镜像资源+淘宝镜像的方法
Sep 07 Javascript
在HTML中使用JavaScript的两种方法
Dec 24 Javascript
解析John Resig Simple JavaScript Inheritance代码
Dec 03 #Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
Dec 03 #Javascript
js函数调用常用方法详解
Dec 03 #Javascript
JS随即打乱数组实现代码
Dec 03 #Javascript
JS图片预加载 JS实现图片预加载应用
Dec 03 #Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 #Javascript
js操作textarea 常用方法总结
Dec 03 #Javascript
You might like
Search Engine Friendly的URL设计
2006/10/09 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
JavaScript中的冒泡排序法
2016/08/03 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
Python判断操作系统类型代码分享
2014/11/22 Python
Python安装第三方库的3种方法
2015/06/21 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
什么是事务?为什么需要事务?
2012/01/09 面试题
公司司机岗位职责
2014/02/07 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
招标承诺书
2014/08/30 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电